Тема: AHK: Активация элемента управления при наведении
Привет снова, помогите пожалуйста! Мне надо чтоб при наведении на изображение оно менялось на другое, а при "отведении" возвращалось старое изображение!
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Привет снова, помогите пожалуйста! Мне надо чтоб при наведении на изображение оно менялось на другое, а при "отведении" возвращалось старое изображение!
Проще всего так:
img1 := "http://i.imgur.com/C4YDfUK.png"
img2 := "http://i.imgur.com/Cgf3QaU.png"
width := 600
height := 450
html =
(
<style>
body {
margin: 0;
overflow: hidden;
}
img {
position: absolute;
left: 0;
width: %width%px;
transition: opacity 0.2s ease-in-out;
}
img+img:hover {
opacity: 0;
}
</style>
<body><img src='%img1%'><img src='%img2%'></body>
)
Gui, Margin, 0, 0
Gui, Add, ActiveX, vPic w%width% h%height%, htmlfile
Pic.write(html)
Gui, Show
Return
GuiClose:
GuiEscape:
ExitApp
teadrinker
Не знаю почему но всегда показывает "img2"!
Всегда показывает только 1 изображение!
Pic1 := LoadPicture("shell32.dll", "Icon1 h-1 w64")
Pic2 := LoadPicture("shell32.dll", "Icon4 h-1 w64")
Gui, Add, Pic, hwndhandlePic1_2, % "HBITMAP:*" Pic1
Gui,Show,w150 h150
OnMessage(0x200,"WM_MOUSEMOVE")
Return
WM_MOUSEMOVE(){
Global
Local _tmp,ctrl_id
Static StatusPic1_2
MouseGetPos,,,,ctrl_id,2
if (!StatusPic1_2 and (ctrl_id = handlePic1_2) and (StatusPic1_2:=true))
or (StatusPic1_2 and (ctrl_id != handlePic1_2) and (StatusPic1_2:=false)1)
{
ToolTip % "Установлена картинка " (_tmp:=StatusPic1_2+1)
GuiControl, , % handlePic1_2,% "HBITMAP:*" Pic%_tmp%
}
}
Всегда показывает только 1 изображение!
А какая система и версия AHK?
teadrinker
Windows 8.1
Вот 2 недели назад скачал новую v1.1.24.00
yalanne
Спасибо, заработало!
teadrinker, у меня ваша версия тоже не переключает картинку.
Win 10 x64. ahk x64.
yalanne
А можно сделать чтоб мне не писало "Установлена картинка 1" или "Установлена картинка 2"?
А так:
img1 := "http://i.imgur.com/C4YDfUK.png"
img2 := "http://i.imgur.com/Cgf3QaU.png"
width := 600
height := 450
html =
(
<style>
body {
margin: 0;
overflow: hidden;
}
img {
position: absolute;
left: 0;
width: %width%px;
-webkit-transition: opacity 0.2s ease-in-out;
-moz-transition: opacity 0.2s ease-in-out;
transition: opacity 0.2s ease-in-out;
}
img+img:hover {
opacity: 0;
}
</style>
<body><img src='%img1%'><img src='%img2%'></body>
)
Gui, Margin, 0, 0
Gui, Add, ActiveX, vPic w%width% h%height%, htmlfile
Pic.write(html)
Gui, Show
Return
GuiClose:
GuiEscape:
ExitApp
Замени строчку
ToolTip % "Установлена картинка " (_tmp:=StatusPic1_2+1)
На
_tmp:=StatusPic1_2+1
teadrinker
Ни работает!
yalanne
Спасибо заработало!
yalanne, если резко убрать курсор с изображения в вашем варианте — остаётся, которое при наведении.
Картинку побольше попробуйте.
А такой работает?
img1 := "http://i.imgur.com/C4YDfUK.png"
img2 := "http://i.imgur.com/Cgf3QaU.png"
width := 600
height := 450
html =
(
<style>
body {
margin: 0;
overflow: hidden;
}
div {
position:relative;
height:%height%px;
width:%width%px;
margin:0 auto;
}
img {
position: absolute;
left: 0;
width: %width%px;
-webkit-transition: opacity 0.2s ease-in-out;
-moz-transition: opacity 0.2s ease-in-out;
-o-transition: opacity 0.2s ease-in-out;
transition: opacity 0.2s ease-in-out;
}
img+img:hover {
opacity: 0;
}
</style>
<body>
<div>
<img src='%img1%'>
<img src='%img2%'>
</div>
</body>
)
Gui, Margin, 0, 0
Gui, Add, ActiveX, vPic w%width% h%height%, htmlfile
Pic.write(html)
Gui, Show
Return
GuiClose:
GuiEscape:
ExitApp
teadrinker, Нет. при запуске идет вторая картинка и нечего не происходит.
Вот зараза! А так:
img1 := "http://i.imgur.com/C4YDfUK.png"
img2 := "http://i.imgur.com/Cgf3QaU.png"
width := 600
height := 450
html =
(
<style>
body {
margin: 0;
overflow: hidden;
}
img {
position: absolute;
left: 0;
width: %width%px;
transition: opacity 0.2s ease-in-out;
}
#top:hover {
opacity: 0;
}
</style>
<body><img src='%img1%' /><img id='top' src='%img2%' /></body>
)
Gui, Margin, 0, 0
Gui, Add, ActiveX, vPic w%width% h%height%, htmlfile
Pic.write(html)
Gui, Show
Return
GuiClose:
GuiEscape:
ExitApp
У teadrinker все коды работают.
Просто надо вписать вначале скрипта:
FixIE(1)
; код
FixIE(Fix)
{
Static Key := "Software\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"
If A_IsCompiled
ExeName := A_ScriptName
Else
SplitPath, A_AhkPath, ExeName
If Fix
RegWrite, REG_DWORD, HKCU, %Key%, %ExeName%, 0
Else
RegDelete, HKCU, %Key%, %ExeName%
}
А, у меня это выполнено уже.
Значит, так должно сработать:
FixIE(1)
img1 := "http://i.imgur.com/C4YDfUK.png"
img2 := "http://i.imgur.com/Cgf3QaU.png"
width := 600
height := 450
html =
(
<style>
body {
margin: 0;
overflow: hidden;
}
img {
position: absolute;
left: 0;
width: %width%px;
transition: opacity 0.2s ease-in-out;
}
img+img:hover {
opacity: 0;
}
</style>
<body><img src='%img1%'><img src='%img2%'></body>
)
Gui, Margin, 0, 0
Gui, Add, ActiveX, vPic w%width% h%height%, htmlfile
Pic.write(html)
Gui, Show
Return
GuiClose:
GuiEscape:
ExitApp
FixIE(Fix)
{
Static Key := "Software\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"
If A_IsCompiled
ExeName := A_ScriptName
Else
SplitPath, A_AhkPath, ExeName
If Fix
RegWrite, REG_DWORD, HKCU, %Key%, %ExeName%, 0
Else
RegDelete, HKCU, %Key%, %ExeName%
}
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться