会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132358个问题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>自定义右键菜单案例</title>
    <style>
        ul{width: 200px;background: #f8f8f8;border: 1px solid #cccc;list-style: none;padding: 0;display: none;position: absolute;}
        ul li{height: 30px;line-height: 30px;font-size: 14px;padding-left: 10px;cursor: pointer;}
        ul li:hover{background-color: teal;}
    </style>
</head>
<body>
    <textarea cols="30" rows="10"></textarea>
    <ul>
        <li>你是谁?</li>
        <li>你确定要离开本页面吗?</li>
        <li>选中的内容跳转到百度搜索</li>
        <li>输入的内容跳转到百度搜索</li>
    </ul>
    <script>
        //系统右键菜单禁用事件【contextmenu】
        document.oncontextmenu = function (eve) {
            return false;   //return false表示事件禁用
        };
        //鼠标右键点击任意位置显示右键菜单
        var ul = document.querySelector('ul');
        document.onmouseup = function(eve){
            //eve.button可以判断用的是鼠标的哪一个按钮
            //左键是0,滚轮是1,右键是2
            //console.log(eve.button);
            if(eve.button == 2){
                //设置鼠标点击的位置
                //记住记住记住,必须给‘px’
                ul.style.left = eve.clientX + 'px';
                ul.style.top = eve.clientY + 'px';
                ul.style.display = 'block';
            }else{
                ul.style.display = 'none';
            }
        }
        //采用事件委托,点击每一个选项时触发的事件
        ul.onclick = function(eve){
            if(eve.target.innerHTML == '你是谁?'){
                alert('我是我')
            }else if(eve.target.innerHTML == '你确定要离开本页面吗?'){
                //判断点击的是确定还是取消
                if(confirm(eve.target.innerHTML == '你确定要离开本页面吗?')){
                    window.close();
                }
            }else if(eve.target.innerHTML == '选中的内容跳转到百度搜索'){
                var result = document.getSelection().toString();//getSelection()获取选中的内容,然后转成字符串就可以搜索了
                window.open('http://www.baidu.com/s?wd=' + result);
            }else{
                var result1 = prompt('搜索什么');
                window.open('http://wwww.baidu.com/s?wd=' + result1);
            }
        }
    </script>
</body>
</html>

老师,我的第三个只能跳到百度,不能直接选中搜索

WEB前端全系列/第二阶段:JavaScript编程模块/面向对象编程 63楼

老师,想请您帮我看看如下代码,为什么我这样做,在浏览器页面没有任何输出?

 <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        .center {
            width: 1201px;
            margin: 0 auto;
        }
        
        .box {
            height: 80px;
            margin-top: 40px;
            background-color: skyblue;
        }
    </style>
  <div class="box center"></div>
<script>
    window.onload = function() {
        //得到元素
        var box = document.querySelector('.box');

        var arr = ["手机", "手表", "箱包", "皮具", "零食"];

        //创建ul元素并设置相关样式
        var ul = document.createElement('ul');
        var ul_style = document.createAttribute('style');
        ul_style.value = "list-style: none;overflow: hidden;";
        ul.setAttributeNode(ul_style);

        //动态地添加相关元素和属性及样式
        for (var i = 0; i < arr.length; i++) {

            //创建li元素并设置相关样式
            var li = document.createElement('li');
            var li_style = document.createAttribute('style');
            li_style.value = "float: left;width:100px;height: 40px;line-height: 40px;\
    text-align: center;";
            li.setAttributeNode(li_style);

            //创建a元素并设置相关样式
            var a = document.createElement('a');
            var a_style = document.createAttribute('style');
            a_style.value = "color: #fff;font-size: 16px;text-decoration: none;";
            a.setAttributeNode(a_style);

            //给每个a标签添加相应的文字
            a.innerHTML = arr[i];

            //将相关元素依次“传”到页面
            li.appendChild(a);
            ul.appendChild(li);
            ul.appendChild(box);
        }
        document.body.appendChild(box);
    }
</script>

图片.png

WEB前端全系列/第二阶段:JavaScript编程模块/DOM模型 64楼
WEB前端全系列/第二阶段:JavaScript编程模块/DOM模型 66楼
WEB前端全系列/第二阶段:JavaScript编程模块/运算符_数据类型和流程循环语句 67楼
WEB前端全系列/第二阶段:JavaScript编程模块/浏览器模型(BOM) 69楼
WEB前端全系列/第二阶段:JavaScript编程模块/DOM模型 71楼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>带有提示文字的滚动条</title>
    <style>
        div{
            width:30px;
            height:15px;
            border: 1px solid black;
            line-height: 15px;
            align:center;
            position:absolute;
            display:none;
        }
    </style>
</head>
<body>
<input type="range" min="0" max="100" value="0"/>  <!--value是当前值-->
<div></div>
<script>
    var div=document.querySelector("div");
    var input=document.querySelector("input");
    var flag=false;
    input.onmousemove=function(){
        div.innerHTML=input.value;
        if(flag) {
            //console.log("(x,y)的值为(" + event.clientX + "," + event.clientY + ")");

            if (event.clientX > 134) {event.clientX = 134;}
            if (event.clientX < 14) {event.clientX = 14;}
            div.style.left = event.clientX + 'px';//style对象的属性值都是字符串,单位包括在字符串中。所以这里用连接符,连接一个字符,使其变成字符串。
            div.style.display = 'block';
        }
    }
    input.onmousedown=function(){//鼠标按下时触发
        flag=true;
        div.style.display='none';
    }
    input.onmouseup=function(){//鼠标抬起时触发
        flag=false;
        div.style.display='none';
    }
</script>
</body>
</html>

我这个绝对定位,距离左边距离的这个功能不能实现。div到第一个位置停止了,但我的程序出来效果图div还可以继续移动

blob.png

WEB前端全系列/第二阶段:JavaScript编程模块/浏览器模型(BOM) 72楼
WEB前端全系列/第二阶段:JavaScript编程模块/运算符_数据类型和流程循环语句 73楼
WEB前端全系列/第二阶段:JavaScript编程模块/DOM模型 74楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637