1

そのため、extjs ボタンを画像に置き換えて、ツールチップを表示しようとしています。問題は、画像を表示したいだけで、extjs ボタンの背景が欲しくないということです。以下は私のコードです。私が話していることのアイデアを得るために、ここに js フィドルがあります: http://jsfiddle.net/nCkZN/7/

CSS:

.question {
    background-image: url(../www/css/slate/btn/question.png) !important;
    background-repeat: no-repeat;
}

Javascript:

{
    xtype: 'button',
    iconCls: 'question',
    tooltip: "<b>read-only</b>:Read-only users will have read only access to all pages<br> ",
    padding: '2 6 2 7',
    width: 20,
    height: 24
}

編集:ボタンをテキストに置き換えたところ、画像のみが表示されました。ただし、ツールチップは表示されません。

{
    xtype: 'text',
    cls: 'question',
    tooltip: "<b>read-only</b>:Read-only users will have read only access to all pagess ",
    height: 20,
    padding: '12 6 2 7'
}
4

2 に答える 2

6

ボタンの外観は CSS http://jsfiddle.net/nCkZN/10/で変更できます。

Ext.create('Ext.form.Panel', {
    title: 'Contact Info',
    width: 300,
    bodyPadding: 10,
    renderTo: Ext.getBody(),
    items: [{
        xtype: 'button',
        cls: 'my-btn', // Add this so you can style the button
        iconCls:'questionIcon',
        tooltip:"<b>read-only</b>:Read-only users will have read only access to all pages<br> ",
        padding: '2 6 2 7'                    
    }]
});​

CSS

.questionIcon {
  background-image:url(http://www.myimage.com/pic.png) !important;
  background-repeat: no-repeat;            
}

.my-btn {
  border-radius: 0;
  background-image: none;
  border: 0;
}

または、通常Ext.Imgを使用してツールチップを追加することもできます。ボタンが不要な場合は、ボタンを使用するよりもきれいに見えます。http://jsfiddle.net/nCkZN/15/

Ext.create('Ext.form.Panel', {
    title: 'Contact Info',
    width: 300,
    bodyPadding: 10,
    renderTo: Ext.getBody(),
    items: [{
        xtype: 'image',
        src:'http://www.southampton.ac.uk/isolutions/computing/elearn/blackboard/small_pen.gif',
        padding: '2 6 2 7',
        listeners: {
            render: function(cmp) {
                Ext.create('Ext.tip.ToolTip', {
                    target: cmp.el,
                    html: "<b>read-only</b>:Read-only users will have read only access to all pages<br> "
                });
            }
        }
    }]
});​

あなたが本当に望んでいるように見えるのは、任意のコンポーネントにツールチップを追加する方法です。これを行うためのプラグインを次に示します。

Ext.define('Ext.ux.Tooltip', {
    extend: 'Ext.AbstractPlugin',
    alias: 'plugin.ux-tooltip',

    /**
     * @cfg html The text to put into the tooltip
     */
    init: function(cmp) {
        var me = this;
        cmp.on('render', function() {
            Ext.create('Ext.tip.ToolTip', {
                target: cmp.el,
                html: me.html
            });        
        });
    }
});

どのコンポーネントにもツールチップを簡単に追加できるようになりましたhttp://jsfiddle.net/nCkZN/17/

Ext.create('Ext.form.Panel', {
    title: 'Contact Info',
    width: 300,
    bodyPadding: 10,
    renderTo: Ext.getBody(),
    items: [{
        xtype: 'image',
        src:'http://www.southampton.ac.uk/isolutions/computing/elearn/blackboard/small_pen.gif',
        padding: '2 6 2 7',
        plugins: {
            ptype: 'ux-tooltip', 
            html: '<b>read-only</b>:Read-only users will have read only access to all pages<br> '
        }
    }]
});

</p>

于 2012-12-12T19:17:06.343 に答える
0

背景画像:url(../ www / css / slate / btn / question.png)!important;

最初の問題は、URLを一重引用符で囲む必要があることです。

jsfiddleで、次のように変更しました。

.question{
  background-image:url('http://www.southampton.ac.uk/isolutions/computing/elearn/blackboard/small_pen.gif');
  background-repeat: no-repeat;
}​

次に、実際にテキストがない場合は、iconClsを指定したくない可能性があります。clsを渡すだけの方がよいでしょう。iconClsは、アイコンを構成として渡す場合のものだと思います。

于 2012-12-12T19:01:33.157 に答える