Szukałem tego wszędzie od tygodni, a ja po prostu nie mogę znaleźć czegoś, co by mi powiedziało, co robię źle, a nawet jak postępować. Celem jest stworzenie funkcji podobnej do zbliżenia Amazona na mouseover dla produktów z małymi obrazami.Javascript: Przybliż myszką JUŻ BEZ JQuery lub wtyczek.
Obecnie nie mam pojęcia, jak postąpić, chociaż zdaję sobie sprawę, że będę potrzebować dwóch obrazów - jednego w rozmiarze "powiększonym" i jednego w "pomniejszonym". Nie używam Jquery - Nie mogę zainstalować ani żadnych wtyczek do strony internetowej na żądanie mojego pracodawcy. Zasadniczo pytam o trudniejszą odpowiedź i przepraszam za to z góry. Muszę to zrobić od umiarkowanego zadrapania. Ostrzeżenie: Jestem uczniem programowania. Weź to tak, jak chcesz.
Mam skrypt HTML i CSS, a ponieważ nie mamy tutaj IDE, robię to w sekcji projektu codecademy, w przeciwnym razie musiałbym zaprogramować to całkowicie na żywo. Możesz znaleźć mój kod here, ale również opublikuję poniższy kod, ponieważ ten link będzie musiał zmienić kod, ponieważ używa on zapisu proceduralnego.
Uwaga: Pierwotnie miałem to tak, że szara skrzynka podążała za myszą w odpowiednim centrum. Migotało, gdy się poruszało, ale działało. Obecnie jednak postanowiliśmy tego nie robić, przynajmniej na moim komputerze roboczym. Nie testowałem tego na moim komputerze osobistym.
Edytuj: Kod działa na moim komputerze Surface Pro 3, ale działa podążając za myszą obrazu (co jest tymczasowe i coś przypadkowego złapałem). Nie jestem pewien, dlaczego kod nie działa na moim komputerze w pracy, choć jest to prawdopodobne, bo to Macintosh OSX wersja 10.6.8 ...
HTML kod:
<!DOCTYPE html>
<html>
<head>
<link rel='stylesheet' href='style.css'/>
<script src='script.js'></script>
</head>
<body>
<img id="imgZoom" onmousemove="zoomIn()" onmouseout="zoomOut()" src="http://ginger-mum.com/wp-content/uploads/2015/10/3633-1269758855-0da5042c33400a811a5d766be4579cb8.jpg">
<div id="overlay" onmousemove="zoomIn()"></div>
</body>
</html>
CSS Kod:
#imgZoom {
height: 300;
}
#overlay {
visibility: hidden;
position: absolute;
left: 0px;
top: 0px;
width:20%;
height:20%;
padding: 25px;
border: 5px solid gray;
background-color: white;
opacity:0.4;
text-align:center;
z-index: 1000;
}
kod Javascript:
function zoomIn()
{
var element = document.getElementById("overlay");
element.style.visibility = "visible";
var x = event.clientX; // Get the horizontal coordinate
var y = event.clientY; // Get the vertical coordinate
element.style.top = y - 80;
element.style.left = x - 80;
}
function zoomOut()
{
var element = document.getElementById("overlay");
element.style.visibility = "hidden";
}
jQuery nie wymaga instalacji, podobnie jak jego przesyłania lub dodanie pliki na serwerze sieciowym lub jeśli nie możesz tego zrobić, wstaw tag skryptu z src z jQuery CDN lub jego strony internetowej '' – CY5
@ CY5 Przepraszam za to, ja figu czerwony JQuery wymagał instalacji, szczególnie jeśli chcesz używać rzeczy takich jak Bootstrap.Tam, gdzie uczęszczam do szkoły na programowanie, większość moich instruktorów ostrzega nas, abyśmy nie polegali na JQuery, ponieważ jest to bardziej kuli niż pewna odpowiedź - nie to, że JQuery jest złą rzeczą, to tak jak student, próbuję nauczyć się w pełni metoda. Przypuszczam, że to głównie powód, dla którego nie chcę go używać, abym mógł nauczyć się, jak zrobić to ręcznie. W gruncie rzeczy jestem głównie programistą gier wideo, więc absurdalnie trudny kod, który nie ma pomocników, zwykle robię to przez cały dzień. – Kitfoxpup
Zgadzam się z tobą, ponieważ uczysz się, że masz prawo wiedzieć, jak rzeczy są robione z rdzenia, ale w przyszłości pamiętaj, że ponowne wymyślanie koła jest złe, gdy pracujesz w ograniczeniu czasowym, jeśli możesz to łatwo zrobić za pomocą jakiegoś narzędzia, bo nie wiesz kiedy twoje rzeczy się zepsują – CY5