Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
bootstrap-dropdown-hover
Advanced tools
Open Bootstrap dropdown menus on mouse hover, the proper way. Compatible with Bootstrap 3 & 4.
Bootstrap Dropdown Hover is a simple plugin which opens Bootstrap dropdown menus on mouse hover, the proper way.
Check the official website for a demo.
I had issues with all the previously existing solutions. The simple CSS ones are not using the .open
class on the parent element, so there will be no feedback on the dropdown toggle element when the dropdown menu is visible.
The js ones are interfering with clicking on .dropdown-toggle
, so the dropdown menu shows up on hover, then it is hiding when clicking on the .dropdown-toggle
element, and moving out the mouse will trigger the dropdown menu to show up again.
Some of the js solutions are braking iOS compatibility, some plugins are not working on modern desktop browsers which are supporting the touch events.
That's why I made this proper plugin, which prevents all these issues by using only the standard Bootstrap javascript API, without any hack.
$ bower install bootstrap-dropdown-hover
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="dist/jquery.bootstrap-dropdown-hover.min.js"></script>
Initiate on all dropdowns/dropups method 1
$.fn.bootstrapDropdownHover({
// see next for specifications
});
Initiate on all dropdowns/dropups method 1
$('[data-toggle="dropdown"]').bootstrapDropdownHover({
// see next for specifications
});
Initiate on navbar menu only
$('.navbar [data-toggle="dropdown"]').bootstrapDropdownHover({
// see next for specifications
});
When calling bootstrapDropdownHover()
you can pass a parameters object with zero or more of the following:
clickBehavior
, 'sticky'
|'default'
|'disable'
, defaults to sticky
, which means that if we click on an opened dropdown then it will not hide on mouseleave but on a second click only. Can be default
, which means that means that the dropdown toggles on hover and on click too, or disable
, which disables dropdown toggling with clicking when mouse is detected (so it will open on hover only)hideTimeout
, integer, defaults to 200
, how much time the hovered dropdown hides after mouseleave (in milliseconds).You can modify the behavior of the plugin by calling its methods, all of which accept a value
.
To call methods on any dropdown hover instance, use the following syntax:
$(selector).bootstrapDropdownHover(methodName, parameter);
Here are the available methods:
setClickBehavior(value)
to change the clickBehavior
parameter.setHideTimeout(value)
to change the hideTimeout
parameter.Furthermore, you can call:
destroy()
to restore the original behavior.The basic structure of the project is given in the following way:
├── dist/
│ ├── jquery.bootstrap-dropdown-hover.js
│ └── jquery.bootstrap-dropdown-hover.min.js
├── src/
│ └── jquery.bootstrap-dropdown-hover.js
├── .editorconfig
├── .gitignore
├── .jshintrc
├── .travis.yml
├── bootstrap-dropdown-hover.jquery.json
├── bower.json
├── Gruntfile.js
├── index.html
└── package.json
This is where the generated files are stored once Grunt runs.
Contains the source file.
This file is for unifying the coding style for different editors and IDEs.
Check editorconfig.org if you haven't heard about this project yet.
List of files that we don't want Git to track.
Check this Git Ignoring Files Guide for more details.
List of rules used by JSHint to detect errors and potential problems in JavaScript.
Check jshint.com if you haven't heard about this project yet.
Definitions for continous integration using Travis.
Check travis-ci.org if you haven't heard about this project yet.
Package manifest file used to publish plugins in jQuery Plugin Registry.
Check this Package Manifest Guide for more details.
Contains all automated tasks using Grunt.
Check gruntjs.com if you haven't heard about this project yet.
Specify all dependencies loaded via Node.JS.
Check NPM for more details.
To build and test the plugin, you need:
npm install bower --g
)npm install grunt-cli --g
)Then, cd
to the project directory and install the required dependencies:
$ npm install
$ bower install
To run jshint on the plugin code, call:
$ grunt jshint
To build the output js and css files, with the related minified ones, run:
$ grunt
You can report any issue you may encounter on the GitHub Issue Tracker.
To contribute, please follow the contribution guidelines.
Check Release list.
Copyright 2015 István Ujj-Mészáros
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
FAQs
Open Bootstrap dropdown menus on mouse hover, the proper way. Compatible with Bootstrap 3 & 4.
The npm package bootstrap-dropdown-hover receives a total of 183 weekly downloads. As such, bootstrap-dropdown-hover popularity was classified as not popular.
We found that bootstrap-dropdown-hover demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.