zoukankan      html  css  js  c++  java
  • 选中文字之后显示其他层

    选中文字这个其实不难,主要还是兼容性的问题

    在IE和OPERA下用document.selection

    在FF、safari、chrome下就用window.getSelection()这个方法,不过这方法返回的是对象,如果要用的话,就要转换为字符串

    先结构部分:

    <p id="p1" style ="300px">
    我们终究会死。所以我们的人生目标不该是长命百岁,而应该做点自己想做的。
    流转的时光,照一脸沧桑。来不及遗忘,来不及细数。眉毛这样短,思念那么长。爱情里只有心甘情愿做傻瓜的人,没有真正的傻瓜
    </p>
    <div id="share" style="position:absolute;20px;height:20px;background:red;"></div>

    div 必须是绝对定位,div中可以放入分享的图标,这里先用红色底色标记下

    首先,先封装一个兼容性函数selectText()

        //selectText方法返回选中的文字,直接调用
        function selectText(){
            //IE、opera下:document.selection
            //ff、safari、chrome:getSelection(),该方法返回的是对象
            if(document.selection){
                return document.selection.createRange().text; 
            }else{
                return window.getSelection().toString();
            };
        }

     然后是封装一个显示分享层的showShare()

        function showShare(oTarget,oShowDiv){
            oTarget.onmouseup = function(e){
            var e = e || window.event;
            var left= e.clientX;
            var top = e.clientY;
            if(selectText().length > 10 ){
                //ie下要延时,不然会影响选择
                setTimeout(function(){
                        oShowDiv.style.display = "block";
                        oShowDiv.style.left = left + "px";
                        oShowDiv.style.top = top + "px";
                    },50);
                e.cancleBubble = true;            
                };
            };
    //点击页面其它地方,隐藏分享层 document.onclick
    = function(){ oShowDiv.style.display = "none"; } };

    现在可以根据实际的机构来调用函数了

        var oP = document.getElementById("p1");
        var oShare = document.getElementById("share");
        showShare(oP,oShare );

    主要的要点有:兼容性问题,取消冒泡,定时器解决IE选择的BUG

  • 相关阅读:
    项目相关的风险要素及分类
    IT从业人员必看的10个论坛(转)
    Android Input设备debug技巧
    Android中如何判断是否联网
    paip.tree 生成目录树到txt后的折叠查看
    hdu 4737 A Bit Fun
    FLASH ROM与EEPROM的区别
    Robot Framework学习路线
    Distinguishing Between Embedded and General-Purpose Computing
    服务的生命周期
  • 原文地址:https://www.cnblogs.com/fyima/p/3728742.html
Copyright © 2011-2022 走看看