2017-01-11 3 views
0

Так что я в основном пробовал все, что мог придумать. Я хочу сделать выпадающее меню из изображения, которое я использую. Курсор действительно становится указателем. Я действительно потерял то, что я сделал неправильно.Почему мое раскрывающееся меню не отображается?

Это HTML я прямо сейчас:

<a> 

    <img class="dropbtn" id="profile" src="img/icons/Profiel.png" alt="Profiel" width="50px" heigt="50px"> 

    <div id="myDropdown" class="dropdown-content"> 
     <a href="#">Link 1</a> 
     <a href="#">Link 2</a> 
     <a href="#">Link 3</a> 
    </div> 
    </img> 
</a> 

И вот CSS:

/* Dropdown Button */ 
.dropbtn { 
    cursor: pointer; 
    background-color: none; 
} 


/* The container <div> - needed to position the dropdown content */ 
.dropdown { 
    position: relative; 
    display: inline-block; 
} 

/* Dropdown Content (Hidden by Default) */ 
.dropdown-content { 
    display: none; 
    position: absolute; 
    background-color: #f9f9f9; 
    min-width: 160px; 
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); 
} 

/* Links inside the dropdown */ 
.dropdown-content a { 
    color: black; 
    padding: 12px 16px; 
    text-decoration: none; 
    display: block; 
} 

/* Change color of dropdown links on hover */ 
.dropdown-content a:hover {background-color: #f1f1f1} 

/* Show the dropdown menu (use JS to add this class to the .dropdown-content container when the user clicks on the dropdown button) */ 
.show {display:block;} 
+1

Что происходит? Не могли бы вы разместить демонстрацию на jsfiddle.net, включая js, который добавит класс show? – xec

+2

Почему вы пытаетесь обернуть изображение вокруг изображения div close, не существует '' удалить это. Также у вас есть пустой якорь, постукивающий все, что тоже нужно удалить – Andrew

+0

Подумайте, используя Bootstrap? –

ответ

0

Вы открыты для использования JQuery?

Вы можете добиться того, что вы хотите, просто добавив:

$(".dropbtn").click(function() { 
    $("#myDropdown").toggleClass("open"); 
}); 

Codepen Demo

$(".dropbtn").click(function() { 
 
    $("#myDropdown").toggleClass("open"); 
 
});
/* Dropdown Button */ 
 

 
.dropbtn { 
 
    cursor: pointer; 
 
    background-color: none; 
 
} 
 

 

 
/* The container <div> - needed to position the dropdown content */ 
 

 
.dropdown { 
 
    position: relative; 
 
    display: inline-block; 
 
} 
 

 

 
/* Dropdown Content (Hidden by Default) */ 
 

 
.dropdown-content { 
 
    display: none; 
 
    position: absolute; 
 
    background-color: #f9f9f9; 
 
    min-width: 160px; 
 
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); 
 
} 
 

 
.dropdown-content.open { 
 
    display: block; 
 
} 
 

 
/* Links inside the dropdown */ 
 

 
.dropdown-content a { 
 
    color: black; 
 
    padding: 12px 16px; 
 
    text-decoration: none; 
 
    display: block; 
 
} 
 

 

 
/* Change color of dropdown links on hover */ 
 

 
.dropdown-content a:hover { 
 
    background-color: #f1f1f1 
 
} 
 

 

 
/* Show the dropdown menu (use JS to add this class to the .dropdown-content container when the user clicks on the dropdown button) */ 
 

 
.show { 
 
    display: block; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 
 
<a> 
 
    <img class="dropbtn" id="profile" src="http://placehold.it/350x350" alt="Profiel" width="50px" height="50px"> 
 

 
    <div id="myDropdown" class="dropdown-content"> 
 
    <a href="#">Link 1</a> 
 
    <a href="#">Link 2</a> 
 
    <a href="#">Link 3</a> 
 
    </div> 
 
    </img> 
 
</a>

+0

Просто добавление кода не работает для меня .. Но я предполагаю, что мне нужно будет знать, как работает jQuery? Я никогда не работал с jQuery. – Tigerotic

+0

Вам нужно включить jQuery в свой проект. Из фрагмента видно, что я добавил его с помощью тегов скриптов. Добавьте эту строку в начало страницы html. – sol

+0

Когда вы нажимаете на изображение, код jQuery добавляет класс .show к myDropdown. В css вы увидите, что .show оформляется с использованием display: block. Это должно быть и на месте. – sol

1

Использование ниже кода

$(".dropbtn").click(function() { 
 
    $("#myDropdown").toggleClass("show"); 
 
});
.dropbtn { 
 
    cursor: pointer; 
 
    background-color: none; 
 
} 
 

 

 
/* The container <div> - needed to position the dropdown content */ 
 
.dropdown { 
 
    position: relative; 
 
    display: inline-block; 
 
} 
 

 
/* Dropdown Content (Hidden by Default) */ 
 
.dropdown-content { 
 
    display: none; 
 
    position: absolute; 
 
    background-color: #f9f9f9; 
 
    min-width: 160px; 
 
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); 
 
} 
 

 
/* Links inside the dropdown */ 
 
.dropdown-content a { 
 
    color: black; 
 
    padding: 12px 16px; 
 
    text-decoration: none; 
 
    display: block; 
 
} 
 
a:hover .dropdown-content {display:block} 
 
/* Change color of dropdown links on hover */ 
 
.dropdown-content a:hover {background-color: #f1f1f1} 
 

 
/* Show the dropdown menu (use JS to add this class to the .dropdown-content container when the user clicks on the dropdown button) */ 
 
.show {display:block;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a> 
 

 
    <img class="dropbtn" id="profile" src="img/icons/Profiel.png" alt="Profiel" width="50px" heigt="50px"> 
 

 
    <div id="myDropdown" class="dropdown-content"> 
 
     <a href="#">Link 1</a> 
 
     <a href="#">Link 2</a> 
 
     <a href="#">Link 3</a> 
 
    </div> 
 
    
 
</a>

+0

Фрагмент кода, кажется, работает нормально здесь, но когда я копирую код, мой скаут обнаруживает ошибку строку перед кодом (каждый раз). Вы знаете, почему это так? – Tigerotic

+0

показать мне свою ссылку, тогда я проверю .... или проверьте, что вы уже добавили jquery или нет –

+0

Да, я не добавил jQuery. Как мне это сделать? :) – Tigerotic

0

Вы удостоверились, чтобы изменить выпадающие CSS к display: block;, когда изображение щелкнули?

Если нет, то попробовать это (JavaScript):

var trigger = document.getElementById("profile"), 
    dropdown = document.getelementById("myDropdown"); 

trigger.onclick = function(){ // on image click 
    dropdown.classList.toggle("active"); // toggle dropdown display 
}); 

CSS:

или JQuery (если вы его ссылки в пределах вашего сайта):

$("#profile").click(function(){ // on image click 
    $("#myDropdown").toggleClass("active"); // toggle dropdown display 
}); 

Убедитесь, что (если вы еще не знаете), чтобы добавить выше в тег script в ваших тегах <head> или <body>, внутри вашего HTMLdocument!

#myDropdown.active{ /* if #myDropdown has class "active" */ 
    display: block; /* make the dropdown visible */ 
} 

Надеюсь, это поможет! :-)

Смежные вопросы