web使用BOM对象实现放大镜

JavaScript系列--BOM,web移动web开发 总结来说,面试成功=基础知识+项目经验+表达技巧+运气。我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。点击这里领取Web前端开发经典面试题。 阅读详情

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>商品放大镜</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }
        
        #smallBox {
            position: relative;
            z-index: 1;
            width: 350px;
            height: 350px;
            margin: 50px;
            border: 1px solid #ccc;
        }
        
        #zoom {
            display:none ;
            width: 150px;
            height: 150px;
            position: absolute;
            background: #ffddcc;
            border: 1px solid #ccc;
            filter: alpha(opacity=50);
            opacity: 0.5;
        }
        
        #bigBox {
            display: none;
            position: absolute;
            top: 0;
            left: 350px;
            width: 540px;
            height: 540px;
            overflow: hidden;
            border: 1px solid #ccc;
            z-index: 1;
        }
        
        #bigBox img {
            position: absolute;
            z-index: 5
        }
    </style>
</head>

<body>
    <div id="smallBox">
        <div id="zoom"></div>
        <img src="images/01.jpg" />
    </div>
    <div id="bigBox">
        <img src="images/001.jpg" />
    </div>
    <script type="text/javascript">
      var smallBox=document.getElementById("smallBox")
      var zoom=document.getElementById("zoom")
      var bigBoximg=document.querySelector("img")
      var bigbox=document.getElementById("bigBox")
      
      //鼠标移入事件
      smallBox.onmouseover=function(){
        zoom.style.display="block";
        bigbox.style.display="block"
      }
      //鼠标移出事件
      smallBox.onmouseout=function(){
        zoom.style.display="none";
        bigbox.style.display="none"
      }
      //鼠标持续移动
      smallBox.onmousemove=function(e){
          var event=event||window.event
          //获取鼠标指针在小图的位置
          var boxX=event.pageX-smallBox.offsetLeft
          var boxY=event.pageY-smallBox.offsetTop
          //放大镜的坐标
          var zoomx=boxX-zoom.offsetWidth/2;
          var zoomy=boxY-zoom.offsetTop/2;
      
          //设置边界
          if(zoomx<0)zoomx=0
          else if(zoomx>smallBox.offsetWidth-zoom.offsetWidth) zoomx=smallBox.offsetWidth-zoom.offsetWidth
          if(zoomy<0) zoomy=0
          else if(zoomy>smallBox.offsetHeight-zoom.offsetHeight) zoomy=smallBox.offsetHeight-zoom.offsetHeight
          
        //设置放大镜的位置
          zoom.style.left=zoomx+"px"
          zoom.style.top=zoomy+"px"
         
        //设置大图移动
        var bigMove=bigBoximg.offsetWidth-bigbox.offsetWidth;//大图移动距离
        var zoomMove=smallBox.offsetWidth-zoom.offsetWidth;//放大镜移动距离
        var rate=bigMove/zoomMove;
        
        bigBoximg.style.left=-rate*zoomx+"px"
        bigBoximg.style.top=-rate*zoomy+"px"
        
      }

    </script>
</body>

</html>

最终效果

【前端学习笔记】Web API——BOM与DOM DOM定义了节点和对象的属性、方法,这些属性、方法可以动态地更新页面内容,响应用户的交互。在这种做法中,当我们想在用户与大量的子元素中的任何一个互动时运行一些代码时,我们在它们的父元素上设置事件监听器,让发生在它们身上的事件冒泡到它们的父元素上,而不必在每个子元素上单独设置事件监听器。window 代表浏览器的一个窗口或标签页,提供了控制浏览器窗口的方法和属性,是浏览器中最顶层的对象,同时也是全局对象,所以在全局作用域中声明的所有变量和函数都成为了 window 对象的属性。BOM:浏览器对象模型。 阅读详情

相关推荐

【jQuery】第二课:JavaScript对象的使用,掌握BOM和DOM对象的使用

知识点:理解JavaScript中的对象、使用window对象的open()方法制作广告窗口、使用getElementById()方法访问DOM元素、使用getElementByName()方法访问DOM元素、使用getElementByIdTagName()方法访问DOM元素、使用定时函数和Date对象制作时钟特效。 1、 理解JavaScript中的对象 1.1 什么是对象? ...

王迪 957

【Web APIs】BOM 浏览器对象模型 ① ( BOM 简介 | 常用的 BOM 对象 | BOM 特点 | BOM 与 DOM 对比 | window 对象简介 )

一、BOM 浏览器对象模型 简介 1、BOM 简介 2、常用的 BOM 对象 3、BOM 特点 4、BOM 浏览器对象模型 与 DOM 文档对象模型 对比 二、window 对象简介 1、window 对象作用 2、全局属性 3、全局方法 4、完整代码示例

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 3311

Linux 桌面虚拟化技术 KVM

Linux 桌面虚拟化技术 KVM

高飞的博客 36万+

JavaScript 入门指南(三)BOM 对象和 DOM 对象

JavaScript 入门指南(三)BOM 对象和 DOM 对象

墨鸦的博客 8131

python零基础入门到精通,python入门到精通教程

坚持到了这儿,恭喜你,表示你有做开发的潜力,其实我想说的上面的内容还是刚刚开始,刚开始大家不需要多么精通了解这些内容,除了Python方面的知识,每个部分掌握一点儿能进行基本开发就好,主要是不断练习,让自己跳出「舒适区」,进入「学习区」,但是又不进入「恐慌区」,不断给自己「喂招」。上述这份完整版的Python全套学习资料已经上传优快云官方,朋友们如果需要可以扫描下方二维码免费获取【保证100%免费】

YYmmsss的博客 3465

逐行逐句进一步了解SurroundOcc(一)

通过分析中的模型构建过程,理解了从配置文件到模型实例化的整个流程。构建过程的核心是通过build和等函数,逐步将配置文件解析并生成模型的各个模块对象,最终组合成一个完整的模型结构。这一过程涉及多个类和函数的调用,其中函数是生成对象的关键,它能够从配置字典中提取必要信息并生成对应的类实例。

lovely_yoshino的博客 8114

BOM对象

BOM对象BOM对象一、什么是BOM对象二、BOM和DOM的区别三、window对象四、location对象五、history对象 BOM对象 一、什么是BOM对象 浏览器对象模型提供了可以与浏览器窗口进行互动的对象结构。 BOM由多个对象组成,其中代表浏览器窗口的Window对象是BOM的顶层对象,其他对象都是该对象的子对象。 BOM提供了一些访问窗口对象的一些方法,我们可以用它来移动窗口位置,改变窗口大小,打开新窗口和关闭窗口,弹出对话框,进行导航以及获取客户的一些信息如:浏览器品牌版本,屏幕分辨率。但

m0_52634705的博客 930

RK3588与FPGA高速PCIe通信:从理论带宽到实战优化的全流程解析

本文深入解析了瑞芯微RK3588与FPGA之间基于PCIe Gen2的高速通信全流程。从理论带宽计算(约1640MB/s)出发,详细拆解了硬件连接、驱动加载、DMA配置等关键步骤,并重点分享了中断优化、内存管理及高级调优等实战技巧,旨在帮助开发者从“跑通”到“跑好”,实现接近理论极限的稳定高效数据传输。

weixin_29175469的博客 335

Web APIs 学习归纳6--- BOM浏览器对象

BOM(Browser Object Model)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其顶级对象是 window。window 对象给我们提供了一个 location 属性用于获取或设置窗体的 URL,并且可以用于解析 URL。因为 这个属性返回的是一个对象,所以我们将这个属性也称为 location 对象。统一资源定位符 (Uniform Resource Locator, URL) 是互联网上标准资源的地址。

SPIRITE_SYF的博客 1399

华为防火墙 策略路由实现多ISP接入Internet

PC3上网访问Server1时走ISP1。PC4上网访问Server1时走ISP2。1、配置接口IP并加入相应的安全区域。二、ISP2 运营商 R2路由器。一、ISP1 运营商 R1路由器。

一直被模仿,从未被超越 3016

电荷灵敏前置放大器噪声优化策略:从理论到实践

本文深入探讨了电荷灵敏前置放大器的噪声优化策略,从理论分析到实践应用。文章系统解析了并联电流噪声与串联电压噪声的来源,并引入噪声等效原理与“冷电容”模型作为统一分析工具。通过详解a、b、c三类噪声的频谱特性,为实战优化提供了清晰指导。核心策略包括选用高跨导、低漏电流FET,优化静态工作点,采用共源-共基结构,精心设计反馈网络,以及实施严格的PCB布局、屏蔽与接地,旨在全面提升微弱信号检测系统的信噪比。

weixin_29292431的博客 470

【WEB】BOM 浏览器对象模型解析(一)

本文围绕BOM(浏览器对象模型)展开,介绍其作为JavaScript与浏览器窗口交互接口的核心概念。阐述BOM以window对象为核心的结构,涵盖window、location、navigator、screen等核心对象。详解各对象的属性与方法,如window控制窗口、location操作URL、navigator获取浏览器信息、screen提供屏幕数据,还涉及实战技巧,展现BOM在浏览器交互中的关键作用。

记录了从0学习Java技术栈的日常 1081

【数据分析】比较SparCC、Pearson和Spearman相关性估计方法在合成组学数据上的表现

【数据分析】比较SparCC、Pearson和Spearman相关性估计方法在合成组学数据上的表现

专注生信领域 662

Web APIs 5:Window对象(BOM)+本地存储

BOM模型window对象介绍,定时器—延迟函数、事件循环概念,JS多线程执行机制、location、navigator、history对象及相关属性,两个本地存储对象

weixin_72043867的博客 1302

【2026年华为暑期实习(AI)-4月8日-第一题- 选择题】(题目+思路+Java&C++&Python解析+在线测试)

答案与解析 1. 相关系数问题 答案:C. 完全负线性相关 解析:相关系数ρ=-1表示X和Y之间存在完全负线性相关关系,所有数据点都严格落在一条斜率为负的直线上。 2. 矩阵秩问题 答案:B. Σ的对角线上非零奇异值的个数 解析:矩阵A的秩等于其奇异值矩阵Σ中非零奇异值的个数,因为U和V都是正交矩阵,不改变矩阵的秩。 3. 条件概率问题 答案:B. 0.5 解析:根据全概率公式和贝叶斯公式计算,P(B)=0.5×0.4+0.3×0.6=0.38,P(A|B)=(0.5×0.4)/0.38≈0.526,最接近

m0_73659489的博客 287

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

BOM的五个对象

目录 一.location对象 1.location对象属性 2.location方法 二.screen对象 三.navigator对象 四.history对象 BOM有常用五大对象,分别为: window对象 screen对象 location对象 navigator对象 history对象 window对象我们在之前详细阐述过,这里不做多余赘述: BOM顶级对象window的常见事件_Developer小蜗的博客-优快云博客 一.location对象 l...

世界和我们都不该止步于此 3320

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

BOM对象浅析

Window 对象是BOM中所有对象的核心,是BOM中所有对象的父对象。既然这样,尽管frame ,history ……都是window的子对象,我们只要知道BOM操作的是对象是浏览器窗口(window),那么这些对象就可以直接使用,无需通过“window.”来访问。 2、全局window对象 Window 是javascript中的全局对象,所以javascript 中的内置函数,还是自定义函数,变量都可以被window 调用,是window的属性,和方法。 通过“window

王勇霞 信息技术提高班九期 7934

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【JavaScript】之浏览器对象模型(BOM)详解

浏览器对象模型 (BOM) 是 JavaScript 的一部分,它允许你与浏览器窗口进行交互。不同于 DOM(文档对象模型)主要处理网页内容,BOM 关注的是浏览器窗口本身及其各种特性,例如导航、窗口大小、浏览器历史记录等等。理解 BOM 的核心对象和方法,可以让你更好地控制浏览器窗口、处理用户交互和获取浏览器信息,从而创建更丰富的 Web 应用。window 对象是 BOM 的顶层对象,代表着浏览器窗口本身。go():跳转到指定页面(相对当前页面)。assign():加载新的 URL。

weixin_64178283的博客 1513

WEB前端06-BOM对象

window对象是一个全局对象,因此可以直接使用全局对象的属性和方法,而无须写出全局对象的对象名。是用于描述浏览器中对象与对象之间层次关系的模型,提供了独立于页面内容、并能够与浏览器窗口进行交互的对象结构。clearTimeout()-----取消由 setTimeout() 方法设置的 timeout。clearInterval()-----取消由 setInterval() 设置的 timeout。setInterval-----周期性的执行某一个函数。

XYX_888的博客 1065

JavaScript BOM、Web Storage与Cookie

对象核心功能典型用途window窗口控制、定时器、全局对象调整窗口大小、定时任务locationURL 操作与页面导航页面跳转、获取 URL 参数navigator浏览器/设备信息设备检测、地理位置获取history历史记录管理单页应用路由控制screen屏幕信息获取响应式布局适配本地持久化存储用户偏好设置、缓存数据单线程非阻塞:通过事件循环和任务队列实现异步。任务优先级:微任务 > 宏任务。避免阻塞:长时间同步代码会阻塞事件循环(如大量计算)。应用场景宏任务:延迟任务、I/O 操作。

2301_82023822的博客 1605

常见的Bom对象

BOM(Browser Object Mode)浏览器对象模型,是Javascript的重要组成部分。它提供了一系列对象用于与浏览器窗口进行交互,这些对象通常统称为BOM。 一张图了解一下先 1、window 对象——BOM核心 window,顾名思义,窗口对象。它表示整个浏览器窗口,主要用来操作浏览器窗口。同时, window对象还是 ECMAScript 中的 Global 对象,因而所有全局变量和函数都是它的属性,且所有原生的构造函数及其他函数也都存在于它的命名空间下。 弹框类的方法。前面省略win

qq_26642611的博客 1853

web前端之js的BOM对象

文章目录一、BOM 对象1. BOM 介绍2. window对象的方法1)网页弹框(window对象下的方法)2)定时器方法3. window 对象的属性1)history2)location3)document二、DOM节点操作1)节点对象2)常用节点分类3)获取元素节点4)操作元素内容5)操作元素属性6)操作元素样式三、实现除重的开奖码生成1. 页面效果2. 代码分析1. 页面元素2. 元素...

奋斗的小鸟 598

web前端之BOM与DOM

BOM与DOM用来和浏览器之间实现交互。 一、BOM和DOM的解释 BOM(Browser Object Model):是指浏览器对象模型,它使javascript有能力与浏览器‘对话’。 DOM(Document Object Model):是指文档对象模型,通过它,可以访问HTML文件的所有元素。 二、BOM 1、window对象 所有浏览器都支持window对象,它表示浏览器窗口...

贵有恒,何必三更眠五更起;最无益,只怕一日曝十日寒 2870
上一篇: 前端实现滑块验证
下一篇: JavaScript有哪些事件和事件处理
香菜南波万
博客等级 码龄3年 879粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值