- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 onShow 上用 Superfish 调用了这个工作函数,它工作得很好,但我认为它看起来有点臃肿,我可以阅读它。我是一名艺术家,所以这些东西(现在已经很多年了)仍然是一项大脑体操。
如果有人有一个示例,无需重写,只需一个类似的示例以使其更短或提示,这就是我想要的。
/** ==============================================================================
* superfish edge detection
=============================================================================== */
function superfish_edge_detection() {
var window_width = $(window).width();
$('.nav-primary ul ul li').mouseover(function() { // yes, you must repeat this again
if ( $( '#collapse-break-point' ).is( ':hidden' ) ) {
var sub_menu_exist = $( this ).find( '.sub-menu' ).length;
if ( sub_menu_exist > 0 ) {
var sub_menu_width = $( this ).find('.sub-menu').width();
var sub_menu_offset = $( this ).find('.sub-menu').parent().offset().left + sub_menu_width;
// if sub menu is off screen
if ((sub_menu_offset + sub_menu_width) >= window_width) {
var new_sub_menu_position = sub_menu_width + 0;
$(this).find('.sub-menu').css({
left: -new_sub_menu_position,
top: '0',
});
} // end is off screen
else if ( (sub_menu_offset + sub_menu_width ) <= window_width )
{
$(this).find('.sub-menu').css({
left: '100%'
});
} //end not off screen
}
} //if breakpoint is hidden
else
{
$( '.sub-menu' ).removeAttr( 'style' );
} //breakpoint is not hidden
}); //end mouseover function
} //end superfish_edge_detection();
在桑蒂的帮助下(参见答案,这里是修订版):
最佳答案
将子菜单存储为一个变量,不仅可以缩短脚本,还可以提高速度。通过一遍又一遍地使用 .find()
,JQuery 必须在每次调用时不断查找元素。
function superfish_edge_detection() {
var window_width = $(window).width();
$('.nav-primary ul ul li').mouseover(function() { // yes, you must repeat this again
var $sub_menu = $(this).find('.sub-menu');
if ( $( '#collapse-break-point' ).is( ':hidden' ) ) {
var sub_menu_exist = $sub_menu.length;
if ( sub_menu_exist > 0 ) {
var sub_menu_width = $sub_menu.width();
var sub_menu_offset = $sub_menu.parent().offset().left + sub_menu_width;
// if sub menu is off screen
if ((sub_menu_offset + sub_menu_width) >= window_width) {
var new_sub_menu_position = sub_menu_width + 0;
$sub_menu.css({
left: -new_sub_menu_position,
top: '0',
});
} // end is off screen
else if ( (sub_menu_offset + sub_menu_width ) <= window_width )
{
$sub_menu.css({
left: '100%'
});
} //end not off screen
}
} //if breakpoint is hidden
else
{
$sub_menu.removeAttr( 'style' );
} //breakpoint is not hidden
}); //end mouseover function
} //end superfish_edge_detection();
关于jquery - 关于用 jQuery 缩短这个函数的任何想法,并举例说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40159811/
场景: 最近在写代码的时候遇到提示语金额后面无效0过多的问题,比如 用户输入金额:500元, 因为数据库是有对于decimal有限制的[Column(TypeName = "numer
示例:http://codepen.io/heroheman/pen/thdBH 嗨,我有这个盒装路径,它每秒都会改变它的 Angular 点。我还有 4 个图标,它们应该位于盒子的 Angular
我正在尝试实现图像缩放效果,有点像缩放在 Google map 中的工作方式,但带有固定位置图像的网格。 我已经在这里上传了一个示例: http://www.dominicpettifer.co.uk
谁能通过一个简单的例子告诉我blur 和focusout、focus 和focusin 之间的区别? 最佳答案 focusin 和focusout 事件冒泡,focus 和blur 事件不冒泡。这意味
我遇到了一个问题,当使用 slipToggle 折叠其中一个列表时,使用 jQuery UI Sortable 进行排序会失败。 这是一个演示: http://jsfiddle.net/BNJzB/5
我正在尝试使用委托(delegate)和协议(protocol),但遇到了问题。 我在一个 ViewController 上创建了 2 个按钮,并在另一个 ShowViewController 中创建
我已经阅读了 jQuery official website 上每个函数的文档。 ,但以下功能之间没有这样的比较列表: $().click(fn) $().bind('click',fn) $().l
我想知道为什么 在几个网页上元素不同的颜色。我注意到在某些页面上如果有 font-family:inherit影响选择元素的 css 属性,它看起来会有所不同 - 蓝色! Volvo Sa
我是一名优秀的程序员,十分优秀!