【问题标题】:mozilla blue highlight color in clickeable javascript elements可点击的javascript元素中的Mozilla蓝色突出显示颜色
【发布时间】:2013-09-07 02:22:37
【问题描述】:

我对 Mozilla 和经典的蓝色高亮颜色有疑问。但是突出显示的文本没有问题,我的意思是,我一直在搜索并且我尝试了 ::-moz-selection css 属性,它工作正常,但真正的交易来自我在我的页面上有一些可点击的 javascript 事件,比如……

CSS

figure:nth-of-type(1) { 
    -o-transform: translate(60%,-25%) rotate(-10deg) scale(0.60);
    -webkit-transform: translate(60%,-25%) rotate(-10deg) scale(0.60);
    -moz-transform: translate(60%,-25%) rotate(-10deg) scale(0.60);
    transform: translate(60%,-25%) rotate(-10deg) scale(0.60); }

figure.active:nth-of-type(1) {
    z-index:10; 
    box-shadow:0px 0px 50px black;
    -o-transform: translate(-6.5%,-13.5%) rotate(0deg) scale(0.70); 
    -webkit-transform: translate(-6.5%,-13.5%) rotate(0deg) scale(0.70); 
    -moz-transform: translate(-6.5%,-13.5%) rotate(0deg) scale(0.70); 
    transform: translate(-6.5%,-13.5%) rotate(0deg) scale(0.70); }

JavaScript

<script type="text/javascript" >
    <!--
    function listen() {
        var images=document.getElementsByTagName("figure");
        var i=images.length;
        while(i--){images[i].addEventListener('click', focusImage);}
    }
    function heard() {
        var images=document.getElementsByClassName("active");
        var i=images.length;
        while(i--){images[i].addEventListener('click', unfocusImage);}
    }   
    function focusImage(x){
        var target=x.target;
        var images=document.getElementsByTagName("figure");
        var i=images.length;
        while(i--){images[i].className=""; images[i].addEventListener('click', focusImage)}
        if (target.tagName=="FIGURE"){target.className='active';}
        target.removeEventListener('click', focusImage)
        heard();
    }   
    function unfocusImage(x){
        var target=x.target;
        if (target.className=="active"){target.className='';}                   
        target.addEventListener('click', focusImage);
    }
    //-->

    window.addEventListener('load', listen);                
</script>   

HTML

<figure> 
    <img src="<?php bloginfo('template_directory'); ?>/assets/art_home/01.jpg"  alt="" />
</figure>

所以...当我点击时,figure/img 变成蓝色突出显示(如果我点击另一个地方它会消失)...

我尝试了所有我知道的 css 选择器(::selection、::-moz-selection、visited、active 等),在 Chrome 中我没有任何问题。

请帮忙!!

【问题讨论】:

  • 你能创建一个 jsfiddle 吗?
  • 嗯......我什至不知道那是什么......我一直在玩它,但真的不知道它是如何工作的
  • @user2744115 粘贴您的 HTML/CSS/JS 代码jsfiddle.net,然后单击“保存”按钮。使用 JSFiddle,您可以与我们分享您的问题,以便我们重现它。
  • 好的!但我在 localhost 工作,所以图像不会显示对吗? (对不起我的英语,我来自西班牙,这对我来说很难)。有问题吗??
  • 这是链接jsfiddle.net/mYg7F

标签: javascript highlight mozilla


【解决方案1】:

根据此 SO 帖子,此解决方案应适用于所有非 ie 浏览器(和 IE 10):

Prevent text selection after double click

在你的 CSS 中:

.no_selection {
    -webkit-user-select: none; /* webkit (safari, chrome) browsers */
    -moz-user-select: none; /* mozilla browsers */
    -khtml-user-select: none; /* webkit (konqueror) browsers */
    -ms-user-select: none; /* IE10+ */
}

在您的 HTML 中:

<figure class="no_selection"> 
    <img src="<?php bloginfo('template_directory'); ?>/assets/art_home/01.jpg"  alt="" />
</figure>

【讨论】:

  • 嘿!谢谢!只有 CSS 不起作用(我不知道它是否必须双击才能工作,因为我的事件只需单击一次),但是我在您放置的链接中找到的功能运行良好!
  • 这个:function clearSelection() { if(document.selection && document.selection.empty) { document.selection.empty(); } else if(window.getSelection) { var sel = window.getSelection(); sel.removeAllRanges(); } }
  • 顺便说一句,非常感谢您的帮助。我想将您的答案标记为有用,但似乎我有足够的声誉......
猜你喜欢
  • 1970-01-01
  • 2011-02-02
  • 1970-01-01
  • 2013-04-17
  • 2014-11-11
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 2018-01-06
相关资源
最近更新 更多