Цитата:
PS. Если это решаемо средствами CSS, то используйте его, не нужно грузить JS этим. |
Цитата:
<div class="shriht"> <a href="12_pt_serif_open_sans/" target="_blank" class="navedenie">PT Serif & Open Sans</a> <div class="kartinka_pri_navedenii"> <img src="kartinka/12.png" alt=""> </div> </div> <div class="shriht"> <a href="13_pt_sans_pt_serif/" target="_blank" class="navedenie">PT sans & PT serif</a> <div class="kartinka_pri_navedenii"> <img src="kartinka/13.png" alt=""> </div> </div> |
let navedenie = document.querySelectorAll(".navedenie"); - это коллекция элементов, let kartinkaPriNavedenii = document.querySelectorAll(".kartinka_pri_navedenii "); - это тоже коллекция элементов. При этом, как выясняется, каждый элемент коллекции kartinkaPriNavedenii является дочерним элементом соответствующего элемента коллекции navedenie. Как понять чего вам хочется, если это две коллекции? Если управлять только своим дочерним элементом, то зачем вы получаете коллекцию kartinkaPriNavedenii?
Кстати, kartinkaPriNavedenii - это может и говорит вам о чем-то, но все-таки, такие ребусы читать не из приятного. И зачем так, ради "потренироваться" или же так и будет работать. Если последнее, то решать это посредством JS крайне плохая практика. |
laimas,
Я пока учусь в свободное время, честно не очень получается. |
Я сделал себе вот такую подсказку
https://rakipov.ru/shrift/ И мне нужно что бы это работало вот так, но для всех блоков, а не для одного. const navedenie = document.querySelectorAll(".navedenie"); const kartinkaPriNavedenii = document.querySelector(".kartinka_pri_navedenii"); function priNavedenii_1() { let navedenie = document.querySelectorAll(".navedenie"); let test = navedenie.getBoundingClientRect(); console.log(test.top); function priNavedenii_2() { if (test.top >= 387) { kartinkaPriNavedenii.style.visibility = "visible"; kartinkaPriNavedenii.style.top = "-387" + "px"; } else if (test.top >= 0) { kartinkaPriNavedenii.style.visibility = "visible"; kartinkaPriNavedenii.style.top = "0" + "px"; } } navedenie.addEventListener("mouseover", priNavedenii_2); } window.addEventListener('mousemove', priNavedenii_1); function priNavedenii_3(){ kartinkaPriNavedenii.style.visibility = "hidden"; } navedenie.addEventListener("mouseout", priNavedenii_3); |
Цитата:
|
Цитата:
<script> document.addEventListener( "DOMContentLoaded" , function() { let div = document.querySelector('.kolonki'); let changeTop = { handleEvent(event) { const target = event.target.closest('.shriht'); if (!target) return; let rect = target.getBoundingClientRect(); let divPicture = target.querySelector('.kartinka_pri_navedenii'); let Height = divPicture.offsetHeight; let h = rect.top + Height > innerHeight ? innerHeight - (rect.top + Height + 10) : 0; divPicture.style.setProperty('top', `${h}px`) }}; div.addEventListener('mouseenter', changeTop, true); }); </script> |
Цитата:
int function_name(int a, int b) в Си - передаваемые в функцию параметры, это integer и функция возвращает integer. В РНР тип возвращаемый функцией описывается в конце после двоеточия, например function_name(array $a) : number. Если передаваемый параметр не будет соответствовать типу, то это вызовет ошибку. Вызывая функцию вы передаете ей параметры - function_name(23, 99). Функция принимает эти параметры, которые являются ее аргументами: function_name(a, b) { a и b - аргументы функции } PS. Строго говоря, аргументы функции нельзя назвать переменными, значение их зависит от переданных в функцию параметров, это да. |
рони,
Как всегда спасибо, очень приятно знать что есть такие люди как вы |
laimas,
Буду еще разбираться, и я кроме верстки не чего не знаю JS это для меня первый язык |
Часовой пояс GMT +3, время: 10:17. |