谁能提供一段按钮切换窗口的纯CSS代码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谁能提供一段按钮切换窗口的纯CSS代码?相关的知识,希望对你有一定的参考价值。

如题,就像网易首页那样(如图),鼠标停留(或点击)那个按钮,就出来那个按钮所对应的内容。一定要纯CSS的,全部代码连在一起的,不要JS的。

<head>
<title>无标题页</title>
<script type="text/javascript">
function imgclick()
var img=document.getElementById("img1");
img.src="img/u0.jpg";

</script>
</head>
<body>
<img id="img1" style="cursor:pointer" onclick="imgclick()" src="img/u0(2).jpg"/>
</body>

这是点下表示点击过了。不会换回来

如果你要多个图互换的话 可以在一开始定义一个图形数组。然后再下面定义一个indexof方法(因为这里没有直接提供这个方法 你要自己定义)。接着就好办了......你就换img的src就行了
参考技术A 有个站
haomymy.com 首页效果
如果合适 就直接保存吧.

在 ExtJS 4.1 中单击外部窗口时如何关闭窗口?

【中文标题】在 ExtJS 4.1 中单击外部窗口时如何关闭窗口?【英文标题】:How to close window when clicking outside window in ExtJS 4.1? 【发布时间】:2019-09-28 03:54:17 【问题描述】:

我从事这项任务已经有一段时间了,但无法完成。基本上我有这个窗口,当我点击 “切换按钮” 时我可以切换它,但是当用户点击窗口外的任何地方时我试图关闭窗口并且我没有任何运气用它。谁能指出我正确的方向?我找到了一个解决方案,但它使用 ExtJS 6,而且我使用的是 4.1 版。非常感谢!

这是我的代码:

button.on('click', function() 
if (myWindow.isVisible()) 
    myWindow.hide();

   else 
    myWindow.show();
    myWindow.alignTo(Ext.getBody(), "tr-tr", [-10, 10]);
  
 , this);


这里是LIVE DEMO

现在,我发现这段代码有效,但它使用 Extjs 6。

Ext.create('Ext.window.Window', 
float: true,
width: 300,
height: 200,
listeners: 
    focusleave: function (cmp) 
        cmp.close();
    
,
renderTo: Ext.getBody()
).show();

这是使用 Extjs 6 的此版本的 LINK

【问题讨论】:

【参考方案1】:

试试这个。

var myWindow = Ext.create('Ext.window.Window', 
    modal: false,
    height: 300,
    width: 300,
    closeAction: 'hide',
    listeners: 
    el: 
        blur: function () 
           this.hide();
           Ext.getCmp(this.id).setVisible(false);
           
        
    
  );

更新

在模糊事件中包含Ext.getCmp(this.id).setVisible(false);

更新

使用mousedown 事件而不是点击,因为它在模糊之前引发。

 button.mon(button.getEl(),  

    'mousedown': function() 

      if (myWindow.isVisible()) 
        myWindow.hide();

       else 
        myWindow.show();
        myWindow.alignTo(Ext.getBody(), "tr-tr", [-10, 10]);
      

    

  );

如果你想用 enterkey 切换按钮。然后也包括keydown 事件。

button.getEl().on(
  scope: this,
  keydown: function(e, obj) 
   if(e.keyCode===13) 
      if (myWindow.isVisible()) 
        myWindow.hide();

       else 
        myWindow.show();
        myWindow.alignTo(Ext.getBody(), "tr-tr", [-10, 10]);
      
    
  
);

如果您使用 keydown 事件,请不要忘记在按钮定义中添加 enableKeyEvents 配置为 true。

  var button = Ext.create('Ext.button.Button', 
    text: 'Toggle Window',
    enableKeyEvents:true,
    renderTo: Ext.getBody()
 );

Here 是工作小提琴。

【讨论】:

您的解决方案很有效,但是当我想再次打开窗口时,我必须双击。任何想法如何解决这个问题?谢谢 您的解决方案仍然需要双击。无法正常工作 切换被你的解决方案破坏了 您的 jsfiddlle 不起作用。按钮上的切换功能已损坏 好的。用详细的解释更新了答案。检查这个 jsfiddle jsfiddle.net/5nwhm24x【参考方案2】:

作为 Gokul 的回答,您可以在 el 上添加 blur 事件并隐藏窗口。而在切换可见属性时未修改,因此您必须将其设置为 false 以避免双击。

el: 
   blur: function () 
       myWindow.hide();
       myWindow.setVisible(false);
             

Here 是工作小提琴

【讨论】:

您的解决方案仍然需要双击。无法正常工作 切换被你的解决方案破坏了

以上是关于谁能提供一段按钮切换窗口的纯CSS代码?的主要内容,如果未能解决你的问题,请参考以下文章

自定义具有多个条件的纯CSS响应菜单

谁能推荐css颜色查询工具

css实现iPhone的切换按钮

两个按钮来回切换怎么用css完成

Bootstrap轮播图的切换按钮如何制作?

在按钮单击时切换 CSS 文件