zoukankan      html  css  js  c++  java
  • 自定义网页右键菜单总结

    任务目的

    1. 了解js中的oncontextmenu事件
    2. 了解如何获取鼠标位置
    3. 了解如何实现页面屏蔽右键菜单

    任务描述

    1. 实现鼠标右击时,出现自定义菜单。点击非自定义菜单区域时,隐藏自定义菜单。参考样例(点击查看),实现页面开发,要求实现效果基本一致。
    2. 点击自定义菜单条目时,弹出菜单条目名称。

    任务注意事项

    1. 自定义菜单出现在鼠标指针右下方,当右边区域不够大,展示在左下方,同理,当下方区域不够时,展示在鼠标指针上方
    2. 注意测试不同情况,尤其是极端情况下的效果
    3. 尽量不要使用第三方库,包括jQuery

    参考资料

    1. oncontextmenu: 了解JavaScript中oncontextmenu的基本知识
    2. event那些事 收集整理的事件相关资料

    自定义网页右键菜单总结

    1、 oncontextmenu Event

    当用户右键点击一个元素时,触发oncontextmenu事件,打开上下文菜单。

    注意:虽然所有浏览器均支持oncontextmenu事件,但是目前只有火狐浏览器支持contextmenu属性。

    语法:

    在HTML中:

    <element oncontextmenu="myScript">

    在JavaScript中

    object.oncontextmenu = function(){myScript};

    在JavaScript中,使用addEventListener()方法:

    object.addEventListener("contextmenu", myScript);

    2、 CSS3 :not Selector

    :not(selector)选择器除了指定的元素或选择器外,其他元素均使用此样式。

    CSS语法:

    :not(selector) {
        css declarations;
    }

    3、 MouseEvent clientX Property

    当鼠标事件变化时,clientX属性返回鼠标相对当前窗口的水平坐标,如果要获取鼠标相对于当前窗口的垂直坐标,使用clientY属性。

    注意:这是一个只读属性。

    语法:

    event.clientX

    eg:var x = event.clientX;

    4、 如何让原有的右键菜单不可用

    <body oncontextmenu="return false;">

    事件处理方法中 的 return false可阻止事件宿主的默认行为;

    5、 HTML DOM clientWidth Property

    clientWidth属性返回一个元素的可视像素宽度,包括padding,但不包括border,scrollbar和margin。当元素内容比元素实际宽度要宽时,这个属性只返回可视宽度。这个属性经常和clientHeight属性同时使用。

    注意:使用offsetHeight和offsetWidth属性,返回一个元素的可视高度和宽度,包括padding,border和scrollbar。

    语法:

    element.clientWidth

    返回值:一个数字,代表一个元素以像素为单位的可视宽度,包括padding。

    6、 HTML DOM offsetHeight Property

    offsetHeight属性返回一个元素以像素为单位的可视高度,包括padding,border,scrollbar但不包括margin。如果元素内容比元素实际高度要高,此属性只返回可视高度。这个属性常和offsetWidth属性同时使用。

    语法:

    element.offsetHeight

    返回值:一个数字,代表一个元素以像素为单位的可视高度,包括padding,border和scrollbar。

    7、 JavaScript Window Screen

    window.screen对象包含用户屏幕的信息。window.screen对象可以不写window前缀。

    属性:

    screen.返回以像素为单位的屏幕宽度值。

    screen.height:返回以像素为单位的屏幕高度值。

    screen.availWidth:返回以像素为单位的屏幕可用宽度,比如,不包括任务栏。

    screen.availHeight:返回以像素为单位的屏幕可用高度,比如,不包括任务栏。

    screen.colorDepth:返回一个颜色所用的bit数。目前,现在计算机为24bit或32bit。

    screen.pixelDepth:返回屏幕的像素深度属性。

    8、 已提交作业

    代码地址https://github.com/Nunawading2016/2017-IFE-Baidu/blob/master/task4-3

    预览地址http://htmlpreview.github.io/?https://github.com/Nunawading2016/2017-IFE-Baidu/blob/master/task4-3/index.html

  • 相关阅读:
    IDEA 代码统计插件使用
    四种遍历ConcurrentHashMap的方式
    Java中多线程并发体系知识点汇总
    程序员高效工具列表
    js数组与字符串的相互转换方法
    ajax使用json数据格式--无效的 JSON 基元
    for和$.each 的记录
    表单提交模型记录
    /Date(1512551901709+0800)/转换
    jsonp的使用记录
  • 原文地址:https://www.cnblogs.com/melbourne1102/p/6600137.html
Copyright © 2011-2022 走看看