【安徽手机直播系统源码】【博文源码】【iphone软件源码】tooltip源码

2024-11-19 04:36:09 来源:android 开源源码分析 分类:综合

1.谁有flash展示酷炫一点的源码
2.你不知道的Popperjs上篇

tooltip源码

谁有flash展示酷炫一点的源码

       import mx.utils.Delegate;

       import flash.display.BitmapData;

       var numOfItems:Number;

       var radiusX:Number = ;

       var radiusY:Number = ;

       var centerX:Number = Stage.width/2;

       var centerY:Number = Stage.height/2;

       var speed:Number = 0.;

       var perspective:Number = ;

       var home:MovieClip = this;

       var tooltip:MovieClip = this.attachMovie("tooltip", "tooltip", );

       tooltip._alpha = 0;

       var tool_txt_ary:Array = new Array();

       tool_txt_ary[0] = ".2寸笔记本";

       tool_txt_ary[1] = ".6寸笔记本";

       tool_txt_ary[2] = "金刚系列";

       tool_txt_ary[3] = "靓酷系列";

       tool_txt_ary[4] = "全能王系列";

       tool_txt_ary[5] = "网吧电脑系列";

       tool_txt_ary[6] = "雅典系列";

       var numOfItems:Number = 7;

       for (var i = 0; i<numOfItems; i++) {

        var imageBmp:BitmapData = BitmapData.loadBitmap("icon"+i+".png");

        var t = home.attachMovie("item", "item"+i, i+1);

        t.angle = i*((Math.PI*2)/numOfItems);

        t.onEnterFrame = mover;

        t.toolText = _root.tool_txt_ary[i];

        t.icon.inner.attachBitmap(imageBmp,1);

        t.r.inner.attachBitmap(imageBmp,1);

        t.icon.onRollOver = over;

        t.icon.onRollOut = out;

        t.icon.onRelease = released;

       }

       function over() {

        home.tooltip.tipText.text = this._parent.toolText;

        home.tooltip._x = this._parent._x;

        home.tooltip._y = this._parent._y-this._parent._height/2;

        home.tooltip.onEnterFrame = Delegate.create(this, moveTip);

        home.tooltip._alpha = ;

        home.tooltip.tipText._visible = true;

       }

       function out() {

        delete home.tooltip.onEnterFrame;

        home.tooltip._alpha = 0;

        home.tooltip.tipText._visible = false;

       }

       var moved = true;

       function released() {

        moved = false;

        speed = 0;

        this.onEnterFrame = function() {

        if (home._y>-) {

        home._y -= 2;

        home.bg_map._y+=2;

        } else {

        _root.attachMovie("messageBox","messageBox",this.getNextHighestDepth(),{ _x:0, _y:});

        messageBox.click_btn.onPress = function() {

        this._parent.black.onEnterFrame = function() {

        if (home._y<0) {

        home._y += 2;

        home.bg_map._y-=2;

        } else {

        home._y = 0;

        moved = true;

        this._parent.removeMovieClip();

        }

        };

        };

        messageBox.messages.tipText.text="";

        messageBox.menu1.screch_txt.text="";

        messageBox.messages.tipText.text = this._parent.toolText;

        messageBox.menu1.screch_txt.text = "金翔云-<"+this._parent.toolText+">";

        delete this.onEnterFrame;

        }

        };

       }

       function moveTip() {

        home.tooltip._x = this._parent._x;

        home.tooltip._y = this._parent._y-this._parent._height/2;

       }

       function mover() {

        this._x = Math.cos(this.angle)*radiusX+centerX;

        this._y = Math.sin(this.angle)*radiusY+centerY;

        var s = (this._y-perspective)/(centerY+radiusY-perspective);

        this._xscale = this._yscale=s*;

        this.angle += this._parent.speed;

        this.swapDepths(Math.round(this._xscale)+);

       }

       this.onMouseMove = function() {

        if (moved) {

        speed = (this._xmouse-centerX)/;

        }

       };

你不知道的Popperjs上篇

       ElementUI中Tooltip、Select、Cascader、TimePicker等组件是如何实现提示框定位到目标元素的?答案是借助于Popperjs,本文将深入探讨Popperjs的用法和特性。

       在ElementUI的安徽手机直播系统源码源码中首次了解到Popperjs,但不清楚其具体版本。通过对比ElementUI代码与Popperjs 0.5.2版本,发现二者高度相似,因此可以判断ElementUI使用的是0.5.2版本的Popperjs。接下来,我们将从0.5.2版本开始,学习Popperjs的使用。

       Popperjs的主要功能是将一个DOM元素定位到目标DOM元素附近,例如Tooltip、Popover、Popconfirm、博文源码Dropdown、Select等组件的提示框或弹窗位置。通过`getBoundingClientRect()`方法获取目标元素的位置,设置Popper元素的样式,使得其位于目标元素的右侧。

       实现定位的基本思路是获取目标元素的位置,将Popper元素设置为固定定位,并根据目标元素的iphone软件源码`right`和`top`值调整自己的位置。考虑到兼容性问题,对于IE9及以下浏览器,需要对`getBoundingClientRect()`方法进行兼容性处理。

       除了基本功能实现,Popperjs还提供了丰富的扩展使用场景,如在不同方位定位Popper元素。通过配置属性`placement`,可以指定Popper元素的clr 源码探究定位方位,如`top-start`、`top-end`、`bottom-start`等。

       为了实现不同方位的定位,Popperjs内部定义了`baseOffsets`数组,用于存储不同方位的默认位置。在计算最终位置时,根据`placement`值和`start`、挖矿 源码 下载`end`属性进行定位。此外,还需要考虑`margin`值对元素大小的影响,通过`getOuterSizes()`函数计算Popper元素的实际大小。

       实现定位的代码中还包含了对`Window.getComputedStyle()`方法的使用,以获取元素的样式属性值。`_getOffsets`函数用于获取参考元素和Popper元素的位置和尺寸,计算最终的定位信息。在定位过程中,`_getOffsets`函数中使用了`shift`函数调整位置,确保`right`和`bottom`值的正确计算。

       为了提升定位性能,可以利用CSS3硬件加速。通过`transform`属性实现元素的平移,避免页面重排和重绘。同时,需要对计算值进行四舍五入处理,以避免字体模糊。考虑到浏览器兼容性问题,需要添加获取当前浏览器支持的前缀属性。

       最后,将定位功能封装在`applyStyle`函数中,提供了一套完整的定位解决方案。此外,Popperjs还支持滚动容器、保持DOM上下文、兼容性、可配置性、避免裁剪和溢出、快速翻转等特性。

       本文仅介绍了Popperjs的扩展使用场景和CSS3硬件加速的基本概念。下篇将深入探讨保留DOM上下文、处理滚动条、裁剪和溢出、快速翻转等场景,以及如何进行自定义扩展。敬请期待。

本文地址:http://581.net.cn/html/59f378596155.html 欢迎转发