首页 web前端 js教程 百度空间的popup效果分析_javascript技巧

百度空间的popup效果分析_javascript技巧

May 16, 2016 pm 06:59 PM
效果 百度

自从用firefox浏览器以来,就几乎养成了一个习惯,就想用WebDeveloper把一些漂亮网站的js包括css给down下来分析一下,用来学习。

百度空间的弹出窗口和拖拽效果,看起来挺不错的。现在很多知名网站都是用的这样的技术。下面把我down的js代码发出来,我分析了一部分,但是还有很多东西不明白怎么回事,没有写注释的部分,还请高手能帮我解释一下。本人属于初学,有不对的地方还请多多指教。
在声明一条吧,此代码仅做学习用,技术版权属于百度。
主要是一个叫做:popup.js的文件,如下:
/**//*********************************************** 弹出窗口.js**************************************************** **/
//为数组Array添加一个push方法
//为数组的末尾加入一个对象
if(!Array.prototype.push)
{
 Array.prototype.push=function ()
 {
 var startLength=this.length;
 for(var i=0;i {
 this[startLength i]=arguments[i];
 }
 return this.length;
 }
 };

//对G函数的参数进行处理
function G()
{
 //定义一个数组用来保存参数
 var elements=new Array();
 //循环分析G中参数的内容
 for(var i=0;i {
 var element=arguments[i];

 //如果参数的类型为string,则获得以这个参数为ID的对象
 if(typeof element=='string')
 {
 element=document.getElementById(element);
 }
 //如果参数的长度为1
 if(arguments.length==1)
 {
 return element;
 }
 //将对象加入到数组的末尾
 elements.push(element);
 };
 return elements;
};

Function.prototype.bind=function (object)
{
 var __method=this;
 return function ()
 {
 __method.apply(object,arguments);
 };
};

//绑定事件
Function.prototype.bindAsEventListener=function (object)
{
 var __method=this;
 return function (event){__method.call(object,event||window.event);};
};


Object.extend=function (destination,source)
{
 for(property in source)
 {
 destination[property]=source[property];
 };
 return destination;
};


if(!window.Event)
{
 var Event=new Object();
};

Object.extend(
 Event,

 {
 observers:false,
 element:function (event)
 {
 return event.target||event.srcElement;
 },

 isLeftClick:function (event)
 {
 return (((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));
 },

 pointerX:function (event)
 {
 return event.pageX||(event.clientX (document.documentElement.scrollLeft||document.body.scrollLeft));
 },

 pointerY:function (event)
 {
 return event.pageY||(event.clientY (document.documentElement.scrollTop||document.body.scrollTop));
 },

 stop:function (event)
 {
 if(event.preventDefault)
 {
 event.preventDefault();
 event.stopPropagation();
 }
 else 
 {
 event.returnValue=false;
 event.cancelBubble=true;
 };
 },

 findElement:function (event,tagName)
 {
 var element=Event.element(event);
 while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase())))
 element=element.parentNode;
 return element;
 },

 _observeAndCache:function (element,name,observer,useCapture)
 {
 if(!this.observers)
 this.observers=[];
 if(element.addEventListener)
 {
 this.observers.push([element,name,observer,useCapture]);
 element.addEventListener(name,observer,useCapture);
 }
 else if(element.attachEvent)
 {
 this.observers.push([element,name,observer,useCapture]);
 element.attachEvent('on' name,observer);
 };
 },

 unloadCache:function ()
 {
 if(!Event.observers)
 return;
 for(var i=0;i {
 Event.stopObserving.apply(this,Event.observers[i]);
 Event.observers[i][0]=null;
 };
 Event.observers=false;
 },

 观察:函数(元素、名称、观察者、useCapture)
 {
 var element=G(element);
 useCapture=useCapture||false;
 if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent))
 name='keydown';
 this._observeAndCache(元素、名称、观察者、useCapture);
 }、

 stopObserving:函数(元素、名称、观察者、useCapture)
 {
 var element=G(element);
 useCapture=useCapture||false;
 if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.detachEvent))
 name='keydown';
 if(element.removeEventListener)
 {
 element.removeEventListener(name,observer,useCapture);
 }
 else if(element.detachEvent)
 {
 element.detachEvent('on' name,observer);
 };
 }
 }
);

Event.observe(window,'unload',Event.unloadCache,false);



var Class=function ()
{
var_class=function ()
{
this.initialize.apply(this,arguments);
 };
 for(i=0;i {
 superClass=arguments[i];
for(superClass.prototype 中的成员)
 {
 _class.prototype[member]=superClass.prototype[member];
 };
 };
 _class.child=function ()
 {
 返回新的类(this);
 };
 _class.extend=function (f)
 {
for(f 中的属性)
 {
 _class.prototype[property]=f[property];
 };
 };
 返回_class;
};


//改变百度空间的最下面和最低端的p的id值
//如果flag为begin,则为弹出状态的id值
//如果flag为end ,则为非弹出状态的id值,即知道的id值
function space(flag)
{
if(flag=="begin")
{
var ele=document .getElementById("ft");
 if(typeof(ele)!="#ff0000"&&ele!=null)
 ele.id="ft_popup";
 ele=document.getElementById("usrbar");
 if(typeof(ele)!="undefined"&&ele!=null)
 ele.id="usrbar_popup";
 }
 else if(flag=="end")
 {
 var ele=document.getElementById("ft_popup");
 if(typeof(ele)!="undefined"&&ele!=null)
 ele.id="ft";
 ele=document.getElementById("usrbar_popup");
 if(typeof(ele)!="undefined"&&ele!=null)
 ele.id="usrbar";
 };
 };



//**************************************** **************弹出类弹出窗口******************************** ******************************


var Popup=new Class();

Popup.prototype={ 
 //弹出窗口中框架的name名称
 iframeIdName:'ifr_popup',

 initialize:function (config)
 {
 //---------------弹出对话框的配置信息------------------
 //contentType:设置内容区域为什么类型:1为另外一个html文件 | 2为自定义html字符串 3为确认对话框| 4为alert警告对话框
 //isHaveTitle:是否显示标题栏
 //scrollType:设置或获取对话框中的框架是否可被滚动
 //isBackgroundCanClick:弹出对话框后,是否允许蒙布后的所有元素被点击。如果为false的话,就会有全屏蒙布,如果为true,就会去掉全屏蒙布
 //isSupport的话Draging:是否支持拖拽
 // isShowShadow:是否现实遮挡
 //isReloadOnClose:是否刷新页面,并关闭对话框
 //宽度:宽度
 //高度:高度
 this.config=Object.extend({contentType: 1,isHaveTitle:true,scrollType:'yes',isBackgroundCanClick:false,isSupportDraging:true,isShowShadow:true,isReloadOnClose:true,width:400,height:300},config||{});

 //----------------对话框的参数值信息-------------------- ----
 //shadowWidth :阴影的宽度
 //contentUrl :html链接页面
 //contentHtml :html内容
 //callBack 回调:的函数名
 //参数:回调的函数名中传的参数
 //confirmCon :对话框内容
 //alertCon :警告框内容
 //someHiddenTag:页面中需要隐藏的元素列表,以创建分割
 //someHiddenEle:需要隐藏的元素的ID列表(和someToHidden的区别是:someHiddenEle是通过getElementById,而someToHidden是通过getElementByTagName,里面放的是对象)
 //overlay :
 //coverOpacity :蒙布的透明值
 this.info={shadowWidth:4,title:"",contentUrl:"",contentHtml:"",callBack:null,parameter:null,confirmCon:"",alertCon:"",someHiddenTag:"select,object,embed",someHiddenEle:"",overlay:0,coverOpacity:40};

 //设置颜色cColor:蒙布的背景, bColor:内容区域的背景, tColor:标题栏和边框的颜色,wColor:字体的背景色
 this.color={cColor:"#EEEEEE",bColor:"#FFFFFF",tColor:"#709CD2",wColor:"#FFFFFF"};

 this.dropClass=null;

 //用来放置隐藏了的对象列表,在hiddenTag方法中第一次调用
 this.someToHidden=[];

 //如果没有标题栏则不支持拖拽
 if(!this.config.isHaveTitle)
 {
 this.config.isSupportDraging=false;
 }
 //初始化
 this.iniBuild();
 },

 //设置配置信息和参数内容
 setContent:function (arrt,val)
 {
 if(val!='')
 {
 switch(arrt)
 {
 case 'width':this.config.width=val;
 break;
 case 'height':this.config.height=val;
 break;
 case 'title':this.info.title=val;
 break;
 case 'contentUrl':this.info.contentUrl=val;
 break;
 case 'contentHtml':this.info.contentHtml=val;
 break;
 case 'callBack':this.info.callBack=val;
 break;
 case 'parameter':this.info.parameter=val;
 break;
 case 'confirmCon':this.info.confirmCon=val;
 break;
 case 'alertCon':this.info.alertCon=val;
 break;
 case 'someHiddenTag':this.info.someHiddenTag=val;
 break;
 case 'someHiddenEle':this.info.someHiddenEle=val;
 break;
 case 'overlay':this.info.overlay=val;
 };
 };
 },

 iniBuild:function ()
 {
 G('dialogCase')?G('dialogCase').parentNode.removeChild(G('dialogCase')):function (){};
 var op=document.createElement('span');
 op.id='dialogCase';
 document.body.appendChild(op);
 },

 build:function ()
 { 
 //设置全屏蒙布的z-index
 var baseZIndex=10001 this.info.overlay*10;
 //设置蒙布上的弹出窗口的z-index(比蒙布的z-index高2个值)
 var showZIndex=baseZIndex 2;

 //定义框架名称
 this.iframeIdName='ifr_popup' this.info.overlay;

 //设置图片的主路径
 var path="http://img.baidu.com/hi/img/";

 //关闭按钮
 var close='';

 //使用滤镜设置对象的透明度
 var cB='filter: alpha(opacity=' this.info.coverOpacity ');opacity:' this.info.coverOpacity/100 ';';

 //设置全屏的蒙布
 var cover='

';

 //设置弹出的主窗口设置
 var mainBox='';

 //设置窗口标题栏
 if(this.config.isHaveTitle)
 {
 mainBox ='' '

'关闭 '';
 }
 else 
 {
 mainBox =''关闭“”;
 };

 //设置窗口主内容区域
 mainBox ='

' '

';

 //如果有蒙布
 if(!this.config.isBackgroundCanClick)
 {
 G('dialogCase').innerHTML=cover mainBox;
 G('dialogBoxBG').style.height=document.body.scrollHeight;
 }
 else
 {
 G('dialogCase').innerHTML=mainBox;
 }

 Event.observe(G('dialogBoxClose'),"click",this.reset.bindAsEventListener(this),false);

 //如果支持拖动,则设置拖动处理
 if(this.config.isSupportDraging)
 {
 dropClass=new Dragdrop(this.config.width,this.config .height,this.info.shadowWidth,this.config.isSupportDraging,this.config.contentType);
 G("dialogBoxTitle").style.cursor="move";
 };

 this.lastBuild();
 },

 
 lastBuild:function ()
 {
 //设置confim对话框的具体内容
 var confirm=' ' this.info.confirmCon '

';
 //设置警报对话框的具体内容
 var alert='' this.info.alertCon '

';

 var baseZIndex=10001 this.info.overlay*10;
 var coverIfZIndex=baseZIndex 4;

 //判断内容类型决定窗口的主内容区域应该显示什么
 if(this.config.contentType==1)
 {
 var openIframe="";
 var coverIframe="

";
 G("dialogBody").innerHTML=openIframe coverIframe;
 }
 else if(this.config.contentType==2)
 {
 G("dialogBody").innerHTML=this.info.contentHtml;
 }
 else if(this.config.contentType==3)
 {
 G("dialogBody").innerHTML=confirm;Event.observe(G('dialogOk'),"click",this.forCallback.bindAsEventListener(this),false);
 Event.observe(G('dialogCancel'),"click",this.close.bindAsEventListener(this),false);
 }
 else if(this.config.contentType==4)
 {
 G("dialogBody").innerHTML=alert;
 Event.observe(G('dialogYES'),"click",this.close.bindAsEventListener(this),false);
 };
 },

 //重新加载弹出窗口的高度和内容
 reBuild:function ()
 {
 G('dialogBody').height=G('dialogBody').clientHeight;
 this.lastBuild();
 },

 show:function ()
 {
 //隐藏一些在info中制定的元素
 this.hiddenSome();
 //弹出窗口居中
 this.middle();
 //设置阴影
 if(this.config.isShowShadow)
 this.shadow();
 },

 //设置回调函数
 forCallback:function ()
 {
 return this.info.callBack(this.info.parameter);
 },

 //为弹出窗口设置阴影
 shadow:function ()
 {
 var oShadow=G('dialogBoxShadow');
 var oDialog=G('dialogBox');oShadow['style']['position']="absolute";
 oShadow['style']['background']="#000";
 oShadow['style']['display']="";
 oShadow['style']['opacity']="0.2";
 oShadow['style']['filter']="alpha(opacity=20)";
 oShadow['style']['top']=oDialog.offsetTop this.info.shadowWidth;
 oShadow['style']['left']=oDialog.offsetLeft this.info.shadowWidth;
 oShadow['style']['width']=oDialog.offsetWidth;oShadow['style']['height']=oDialog.offsetHeight;
 }, 

 //让弹出窗口居中显示
 middle:function ()
 {
 if(!this.config.isBackgroundCanClick)
 G('dialogBoxBG').style.display='';
 var oDialog=G('dialogBox');
 oDialog['style']['position']="absolute";
 oDialog['style']['display']='';
 var sClientWidth=document.body.clientWidth;
 var sClientHeight=document.body.clientHeight;
 var sScrollTop=document.body.scrollTop;
 //alert("document.body.clientWidth = "   sClientWidth   "ndocument.body.clientHeight"  sClientHeight);
 var sleft=(document.body.clientWidth/2)-(oDialog.offsetWidth/2);
 var iTop=-80 (sClientHeight/2 sScrollTop)-(oDialog.offsetHeight/2);
 var sTop=iTop>0?iTop:(sClientHeight/2 sScrollTop)-(oDialog.offsetHeight/2);
 //alert("var iTop=-80 (sClientHeight/2 sScrollTop)-(oDialog.offsetHeight/2);n"   "sClientHeight is "   sClientHeight   "nsScrollTop is "   sScrollTop);
 //alert("iTop is "   iTop);
 if(sTop<1)
 sTop="20";
 if(sleft<1)
 sleft="20";
 oDialog['style']['left']=sleft;
 oDialog['style']['top']=sTop;
 //alert("sleft is "   sleft);
 //alert("sTop is "   sTop);
 },

 //刷新页面,并关闭当前弹出窗口
 reset:function ()
 {
 if(this.config.isReloadOnClose)
 {
 top.location.reload();
 };
 this.close();
 },

 //关闭当前弹出窗口
 close:function ()
 {
 G('dialogBox').style.display='none';
 if(!this.config.isBackgroundCanClick)
 G('dialogBoxBG').style.display='none';
 if(this.config.isShowShadow)
 G('dialogBoxShadow').style.display='none';
 G('dialogBody').innerHTML='';

 this.showSome();
 },

 //隐藏someHiddenTag和someHiddenEle中的所有元素
 hiddenSome:function ()
 {
 //隐藏someHiddenTag中的所有元素
 var tag=this.info.someHiddenTag.split(",");
 if(tag.length==1&&tag[0]=="")
 {
 tag.length=0;
 }
 for(var i=0;i {
 this.hiddenTag(tag[i]);
 };
 //隐藏someHiddenEle中的所有逗号分割的ID的元素
 var ids=this.info.someHiddenEle.split(",");
 if(ids.length==1&&ids[0]=="")
 ids.length=0;
 for(var i=0;i {
 this.hiddenEle(ids[i]);
 };
 //改变顶部和底部的p的id值为弹出状态的id值,祥见space的实现
 space("begin");
 },

 //隐藏一组元素
 hiddenTag:function (tagName)
 {
 var ele=document.getElementsByTagName(tagName);
 if(ele!=null)
 {
 for(var i=0;i {
 if(ele[i].style.display!="none"&&ele[i].style.visibility!='hidden')
 {
 ele[i].style.visibility='hidden';
 this.someToHidden.push(ele[i]);
 };
 };
 };
 },

 //隐藏单个元素
 hiddenEle:function (id)
 {
 var ele=document.getElementById(id);
 if(typeof(ele)!="undefined"&&ele!=null)
 {
 ele.style.visibility='hidden';
 this.someToHidden.push(ele);
 }
 },

 //将someToHidden中保存的隐藏元素全部显示
 //并恢复顶部和底部的p为原来的id值
 showSome:function ()
 {
 for(var i=0;i {
 this.someToHidden[i].style.visibility='visible';
 };
 space("end");
 }
 };




//********************************************************Dragdrop类(拖拽动作)************************************************************

var Dragdrop=new Class();

Dragdrop.prototype={
 initialize:function (width,height,shadowWidth,showShadow,contentType)
 {
 this.dragData=null;
 this.dragDataIn=null;
 this.backData=null;
 this.width=width;
 this.height=height;
 this.shadowWidth=shadowWidth;
 this.showShadow=showShadow;
 this.contentType=contentType;
 this.IsDraging=false;
 this.oObj=G('dialogBox');
 Event.observe(G('dialogBoxTitle'),"mousedown",this.moveStart.bindAsEventListener(this),false);
 },

 moveStart:function (event)
 {
 this.IsDraging=true;
 if(this.contentType==1)
 {
 G("iframeBG").style.display="";
 G("iframeBG").style.width=this.width;
 G("iframeBG").style.height=this.height;
 };
 Event.observe(document,"mousemove",this.mousemove.bindAsEventListener(this),false);
 Event.observe(document,"mouseup",this.mouseup.bindAsEventListener(this),false);
 Event.observe(document,"selectstart",this.returnFalse,false);
 this.dragData={x:Event.pointerX(event),y:Event.pointerY(event)};
 this.backData={x:parseInt(this.oObj.style.left),y:parseInt(this.oObj.style.top)};
 },

 mousemove:function (event)
 {
 if(!this.IsDraging)
 return ;
 var iLeft=Event.pointerX(event)-this.dragData["x"] parseInt(this.oObj.style.left);
 var iTop=Event.pointerY(event)-this.dragData["y"] parseInt(this.oObj.style.top);
 if(this.dragData["y"] iTop=iTop-12;
 else if(this.dragData["y"]>parseInt(this.oObj.style.top) 25)
 iTop=iTop 12;
 this.oObj.style.left=iLeft;
 this.oObj.style.top=iTop;
 if(this.showShadow)
 {
 G('dialogBoxShadow').style.left=iLeft this.shadowWidth;
 G('dialogBoxShadow').style.top=iTop this.shadowWidth;
 };
 this.dragData={x:Event.pointerX(event),y:Event.pointerY(event)};
 document.body.style.cursor="move";
 },

 mouseup:function (event)
 {
 if(!this.IsDraging)
 return ;
 if(this.contentType==1)
 G("iframeBG").style.display="none";
 document.onmousemove=null;
 document.onmouseup=null;
 var mousX=Event.pointerX(event)-(document.documentElement.scrollLeft||document.body.scrollLeft);
 var mousY=Event.pointerY(event)-(document.documentElement.scrollTop||document.body.scrollTop);
 if(mousX<1||mousY<1||mousX>document.body.clientWidth||mousY>document.body.clientHeight)
 {
 this.oObj.style.left=this.backData["x"];
 this.oObj.style.top=this.backData["y"];
 if(this.showShadow)
 {
 G('dialogBoxShadow').style.left=this.backData.x this.shadowWidth;
 G('dialogBoxShadow').style.top=this.backData.y this.shadowWidth;
 };
 };
 this.IsDraging=false;
 document.body.style.cursor="";
 Event.stopObserving(document,"selectstart",this.returnFalse,false);
 },

 returnFalse:function ()
 {
 return false;
 }
 };

将上面对popup.js文件做个引用,下面是对这个js文件进行测试的html页面的代码。你可以回去很方便的测试。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PopUpTest.aspx.cs" Inherits="PopUpTest" %>




 无标题页

 

 

 function ShowIframe()
 {
 var pop=new Popup({ contentType:1,isReloadOnClose:false,width:400,height:500});
 pop.setContent("contentUrl","Default.aspx");
 pop.setContent("title","iframe框架示例");
 pop.build();
 pop.show();
 }
 function ShowHtmlString()
 {
 var strHtml = "dsdadsdadasdasddadasddsadads";
 var pop=new Popup({ contentType:2,isReloadOnClose:false,width:340,height:300});
 pop.setContent("contentHtml",strHtml);
 pop.setContent("title","html字符串示例");
 pop.build();
 pop.show();
 }
 function ShowConfirm()
 {
 var pop=new Popup({ contentType:3,isReloadOnClose:false,width:340,height:80});
 pop.setContent("title","confirm对话框示例");
 pop.setContent("confirmCon","confirm对话框的内容");
 pop.setContent("callBack",ShowCallBack);
 pop.setContent("parameter",{id:"pCall",str:"点击确定后显示的字符串",obj:pop});
 pop.build();
 pop.show();
 }
 function ShowAlert()
 {
 var pop=new Popup({ contentType:4,isReloadOnClose:false,width:340,height:80});
 pop.setContent("title","alert警告框示例");
 pop.setContent("alertCon","alert对话框的内容");
 pop.build();
 pop.show();
 }

 
 function ShowCallBack(para)
 {
 var o_pop = para["obj"]
 var obj = document.getElementById(para["id"]);
 o_pop.close();
 obj.innerText = para["str"];

 }

 



 
 


 iframe框架示例
 
 html字符串示例
 
 confirm对话框示例
 
 alert警告框示例
 


 
 


 



代码一堆一堆的啊!那个拖拽的不是很清楚怎么回事?上面的那个class函数也不清楚到底是怎么弄的。凡是没有写注释的地方,基本上就不是很明白。我找时间再分析分析吧!找时间把其它的注释也给写上。如果大家明白的,还请多多指教,越详细越好。
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1268
29
C# 教程
1248
24
百度Apollo重磅发布全球首个支持L4级自动驾驶的大模型Apollo ADFM 百度Apollo重磅发布全球首个支持L4级自动驾驶的大模型Apollo ADFM Jun 04, 2024 pm 08:01 PM

5月15日,百度Apollo在武汉百度萝卜快跑汽车机器人智行谷举办ApolloDay2024,全方位展示百度十年深耕自动驾驶的重大进展,基于大模型带来技术阶跃、面向乘客安全全新定义的无人车和全球最大的无人车自动运营网络,百度已经做到自动驾驶比人类驾驶更安全。得益于此,更加安全舒适、绿色低碳的出行方式正从理想成为现实。百度集团副总裁、智能驾驶事业群组总裁王云鹏现场表示:“我们做无人车的初衷,是满足老百姓日益增长的、对美好出行的向往,人民群众的满意是我们前进的动力。因为安全、所以美好,我们欣喜地看到

屏幕好打游戏才够爽 iQOO Neo9S Pro+ 屏幕简析 屏幕好打游戏才够爽 iQOO Neo9S Pro+ 屏幕简析 Jul 19, 2024 pm 03:53 PM

在当今智能手机市场中,屏幕素质已经成为衡量一款手机综合性能的关键指标之一。iQOO旗下的Neo系列一直致力于为用户提供出色的游戏体验和视觉享受,最新款产品iQOONeo9SPro+更是采用一块"三好护眼电竞屏",接下来我们就来一起看看这块屏幕的素质有多出色。iQOONeo9SPro+搭载了一块1.5KOLED电竞直屏,支持从1Hz到144Hz的旗舰级LTPO自适应刷新率,意味着在显示静态内容时能够实现超低功耗的待机状态,而在游戏过程中也能智能切换至90Hz至144Hz的动态高

百度李彦宏率队拜访中国石油,讨论油气行业智能化 百度李彦宏率队拜访中国石油,讨论油气行业智能化 May 07, 2024 pm 06:13 PM

本站5月7日消息,5月6日,百度创始人、董事长兼首席执行官李彦宏带队在北京拜访中国石油天然气集团有限公司(以下简称“中国石油”),并与中国石油集团董事长、党组书记戴厚良举行会谈。双方就强化合作,推动能源行业与数字化智能化深度融合进行了深入交流。中国石油将加快推进数字中中国石油建设,加强与百度集团合作,推动能源行业与数字化智能化的深度融合,为保障国家能源安全作出更大贡献。李彦宏表示,大模型展现出的“智能涌现”和理解、生成、逻辑、记忆等核心能力,为前沿科技与油气业务结合打开了更加广阔的想象空间。一直

OPPO Find X7 绝绝子!用影像定格你的每一刻 OPPO Find X7 绝绝子!用影像定格你的每一刻 Aug 07, 2024 pm 07:19 PM

在这个快节奏的时代,OPPOFindX7可以用它的影像力量,让我们去细细品味生活中的每一个美好瞬间。无论是壮丽的山川湖海,还是温馨的家庭聚会,亦或是街头的偶遇与惊喜,它都能以"绝绝子"的画质,帮你记录下来。从外头看,在摄像头Deco的设计上,FindX7与Ultra版如出一辙,采用了同心圆弧的造型,参考了专业相机镜头的全棱线设计,还有经典的哈苏"H"大logo,整体看起来很有辨识度,也很有高级感。而内里也是一绝,首先是基础的硬件配置。FindX7维持了上一

deepseek网页版入口 deepseek官网入口 deepseek网页版入口 deepseek官网入口 Feb 19, 2025 pm 04:54 PM

DeepSeek 是一款强大的智能搜索与分析工具,提供网页版和官网两种访问方式。网页版便捷高效,免安装即可使用;官网则提供全面产品信息、下载资源和支持服务。无论个人还是企业用户,都可以通过 DeepSeek 轻松获取和分析海量数据,提升工作效率、辅助决策和促进创新。

消息称三星 Galaxy S24 系列手机国行版'即圈即搜”将支持谷歌搜索 消息称三星 Galaxy S24 系列手机国行版'即圈即搜”将支持谷歌搜索 Jun 01, 2024 am 09:54 AM

5月31日消息,据博主@i冰宇宙今日爆料,三星GalaxyS24系列手机国行版“即圈即搜”将支持谷歌搜索。具体上线时间,该博主并未透露。根据三星此前介绍,三星GalaxyS24系列实装了众多高阶AI能力,将输入、翻译、录音机、笔记、相机等实用功能AI化,为用户带来更方便、更高效的综合体验。与海外版不同的是,三星GalaxyS24系列的AI功能大多由国内厂商提供服务,例如百度等。此前报道,GalaxyAI深度集成百度文心大模型多项能力,可提供端侧赋能的通话、翻译功能,以及借助生成式AI带来的智能摘

纯白便携 ITX 机箱 九州风神 CH160 试装体验 纯白便携 ITX 机箱 九州风神 CH160 试装体验 Apr 23, 2024 am 08:19 AM

在之前的九州风神"风暴海景房"一文中,我们介绍了以九州风神全新冰暴360水冷散热器、CH780机箱,以及PX1200G电源"三件套"为基础,打造的游戏玩家平台。那么今天,我们将以新款ITX机箱——CH160,全新阿萨辛4S散热器,以及DQ750M-V3LWH电源,为大家带来一套纯白ITX个性组合。九州风神纯白ITX机电散套装这两年,喜欢小机箱的玩家,普通DIY用户越来越多。不少网友通过后台留言,新媒体平台私信我们,希望我们能推荐一些"好用不贵,安装简易"的ITX产品。那今天我们所选择的这三款产品

ai工具推荐 ai工具推荐 Nov 29, 2024 am 11:08 AM

本文介绍了六款流行的 AI 工具,包括抖音豆包、文心一格、腾讯智影、百度飞桨 EasyDL、百度 AI Studio 和讯飞星火认知大模型。这些工具涵盖不同的功能,如文本创作、图像生成、视频编辑和 AI 模型开发。选择合适的 AI 工具需要考虑功能需求、技术水平和成本预算等因素。这些工具为需要 AI 辅助的个人和企业提供了方便且高效的解决方案。

See all articles