首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >响应网站:默认情况下如何保持移动、悬停层元素" on“。

问响应网站:默认情况下如何保持移动、悬停层元素" on“。
EN

Stack Overflow用户
提问于 2015-03-03 22:30:07
回答 1查看 329关注 0票数 0

在我的网站,有项目图标,有一个层的鼠标,显示标题。

我想要的是,当你在手机上浏览这个网站的时候,这个层会一直存在。

有一段javascript代码显然处理了这一问题:

代码语言:javascript
复制
/* Set Default Text Color for all elements */
        $(".ut-hover").each(function(index, element) {

            var text_color = $(this).closest('.ut-portfolio-wrap').data('textcolor');

            $(this).find(".ut-hover-layer").css({ "color" : text_color });
            $(this).find(".ut-hover-layer").find('.portfolio-title').attr('style', 'color: '+text_color+' !important');

        });     

        $('.ut-hover').on('mouseenter touchstart', function() {     
            var hover_color   = $(this).closest('.ut-portfolio-wrap').data('hovercolor'),
                hover_opacity = $(this).closest('.ut-portfolio-wrap').data('opacity');

            $(this).find(".ut-hover-layer").css( "background" , "rgba(" + hover_color + "," + hover_opacity+ ")"  );
            $(this).find(".ut-hover-layer").css( "opacity" , 1 );           

        });

        $('.ut-hover').on('mouseleave touchend', function() { 

            $(this).find(".ut-hover-layer").css( "opacity" , 0 );

        });

包含文本的层的css为“ut-悬浮层”。

我需要修改这个脚本,以便如果在移动屏幕上看到该站点,那么“ut悬停层”在加载时是可见的,并且始终保持不变,所以不应该出现鼠标切换。

有人会有解决办法来实现这一点吗?

如果这有帮助的话,下面是站点的链接

提前谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-03 23:26:58

根据另一个堆栈上的答案(在jQuery中检测移动设备的最佳方法是什么?),您应该检测显示页面的设备是否是智能手机,如果是的话,您应该将ut-悬停层不透明度设置为1,如下所示:

代码语言:javascript
复制
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( navigator.userAgent ) ) {
    jQuery( '.ut-hover-layer' ).each( function() { 
        jQuery( this ).css( 'opacity', '1' ).css( 'background' , 'rgba( 242, 35, 244, 0.8 )' ); 
    });
}

然而,我认为,如果您试图以这种方式检测智能手机:

代码语言:javascript
复制
if( jQuery( window ).width() < 768 ) { 
    jQuery( '.ut-hover-layer' ).each( function() { 
        jQuery( this ).css( 'opacity', '1' ).css( 'background' , 'rgba( 242, 35, 244, 0.8 )' ); 

    });
} 

它还能用。

也是纯js方式

代码语言:javascript
复制
if( document.body.clientWidth < 768 ) {
    var elems = document.getElementsByClassName( 'ut-hover-layer' ), 
        i = 0;

    for( ; i < elems.length; i += 1 ) {
        elems[i].style.background = 'rgba( 242, 35, 244, 0.8 )';
        elems[i].style.opacity = '1';
    }
}

另一个选项是用于媒体查询,并将其放到css中:

代码语言:javascript
复制
@media screen and (max-width: 1024px) and (min-width: 481px)
    .ut-hover-layer {
        opacity: 1!important;
        top: 50%;
        background: rgba(242, 35, 244, 0.8);
    }
}

但是,您的代码中将有一些无用的处理程序。

我希望我对你的理解是正确的,这有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28843269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档